Crystal 和 Reporting Services FAQ 第 1 部分






3.53/5 (29投票s)
Crystal 和 Reporting Services FAQ 第 1 部分
Crystal Reports 和 Reporting Services 常见问题解答
- 引言
- 我们如何在 .NET 中访问 Crystal Reports?
- Crystal Reports 中的各种组件是什么?
- 在 Crystal Reports 中显示简单报告需要哪些基本步骤?
- Crystal Reports 可以作为 Web 服务发布吗?
- 我们如何调用 Crystal Reports Web 服务?
- 我们如何使用 Crystal Reports 添加公式?
- 我们如何向 Crystal Reports 传递参数?
- 我们如何从 Crystal Reports 导出?
- 我们如何使用 Crystal Reports 打印到打印机?
- 我们如何生成交叉表报告?
- 我们如何在 Crystal Reports 中进行分组?
- 您能解释一下 Crystal Reports 使用的三遍报告吗?
- 您能解释一下 Reporting Services 架构吗?
引言
本常见问题解答将为您快速入门两款报告巨头 Crystal Reports 和 Reporting Services。
我们如何在 .NET 中访问 Crystal Reports?
Crystal Reports 随 Visual Studio 安装程序一起提供。右键单击解决方案资源管理器 -> 添加新项,您可以看到一个 Crystal Reports 模板,如图“Crystal Reports 模板”所示。您可以使用此模板添加一个“.rpt”文件。
图 1:- Crystal Reports 模板
Crystal Reports 中的各种组件是什么?
Crystal Reports 中有四个主要组件:报表设计器、报表引擎、报表查看器和对象模型。
报表设计器提供了一个图形界面来创建和修改报表。要查看设计器,请添加一个新的 Crystal Reports 文件并双击它,您应该会看到报表设计器,如图“报表设计器”所示。
图 2:- 报表设计器
报表引擎负责 Crystal Reports 的格式化和转换部分。它有助于将报表内容转换为 Word、Excel、PDF、HTML 和其他格式。报表查看器是您可以在 Visual Studio 工具箱中看到的控件;您可以将这些控件拖放到 ASPX 页面或 Windows 应用程序上,以查看使用 Crystal Reports 制作的报表。对象模型帮助我们在设计时和运行时管理 Crystal Reports 对象。
在 Crystal Reports 中显示简单报告需要哪些基本步骤?
为了理解这个示例,让我们使用 Crystal Reports 显示一个简单的报表。
步骤 1:- 创建一个 Web 应用程序项目。
步骤 2:- 添加新项,并从模板中选择 Crystal Reports。这会在您的解决方案资源管理器中添加一个新的 RPT 文件。
步骤 3:- 双击 RPT 文件,单击 Crystal Reports -> 字段资源管理器,如下图所示。您应该会看到字段资源管理器工具栏。
图 3:- 字段资源管理器工具栏
步骤 4 -> 右键单击字段资源管理器上的“数据库字段” -> 然后单击数据库专家 -> 展开“创建新连接” -> 展开 OLE DB ADO -> 选择 Microsoft OLEDB provider for SQL Server(这取决于您要连接的数据类型) -> 输入服务器凭据 -> 单击完成。
步骤 5 -> 右键单击字段资源管理器上的“数据库字段” -> 然后单击数据库专家 -> 展开服务器、数据库并选择要添加到报表的表。下图“报表中添加的表”显示了右侧窗格中通过数据库专家添加的表。
图 4:- 报表中添加的表
步骤 6 -> 展开数据库字段 -> 表(在此示例中为“FactCurrencyRate”表)。现在您可以将字段拖放到报表上。
图 5:- 将字段拖放到报表上
步骤 7 -> 我们现在需要在 ASPX 页面上显示报表。为此,我们需要“CrystalReportViewer”控件。因此,展开工具栏的 Crystal Reports 部分,并将组件拖放到 ASPX 页面上。
图 6:- “Crystalreportviewer”控件
步骤 8:- 现在我们需要转到代码隐藏文件并指定报表源。就是这样,现在编译并运行项目,您可以看到您的报表实时运行。
图 7:- 指定 Crystal Reports 源
Crystal Reports 可以作为 Web 服务发布吗?
右键单击“.RPT”文件,然后单击“发布为 Web 服务”,如图“将 Crystal Reports 发布为 Web 服务”所示。
图 8:- 将 Crystal Reports 发布为 Web 服务
我们如何调用 Crystal Reports Web 服务?
我们可以像在 .NET 中使用普通 Web 服务一样使用该 Web 服务。最简单的方法是使用“ReportViewerControl”并在报表源属性中指定 ASMX URL。
我们如何使用 Crystal Reports 添加公式?
在 Crystal Reports 中添加任何公式都是一个三步过程。下图“在 Crystal Reports 中添加公式”以图片形式展示了这三个步骤。步骤 1 -> 转到字段资源管理器,右键单击并单击新建公式。步骤 2 -> 为公式命名并单击“使用编辑器”。步骤 3 -> 您将看到一个包含所有公式和函数的 UI。
图 9:- 在 Crystal Reports 中添加公式
我们如何向 Crystal Reports 传递参数?
有时我们希望接受输入参数,并且报表根据参数工作。要添加输入参数,请转到字段资源管理器,转到参数字段,右键单击,创建参数,您应该会弹出一个对话框,如图“参数字段”所示。为参数命名,指定类型,然后就可以使用了。
图 10:- 参数字段
我们如何从 Crystal Reports 导出?
有两种使用导出选项的方式,一种是当我们使用 Crystal Reports 查看器显示报表时,您可以看到一个导出图标,如下图“导出”所示。您可以选择要导出的格式。
图 11:- 导出
第二种选择是通过编码。下面是一个简单的代码片段,展示了我们如何导出报表。创建 Crystal Reports 对象,并调用“ExportToDisk”方法,指定您要导出的格式。
Dim Report as New CrystalReport1
Report.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.WordForWindows,"c:\my.doc”)
我们如何使用 Crystal Reports 打印到打印机?
在打印中,我们有两种打印方式:一种是当您使用 Crystal Reports 查看器显示报表时,您有一个打印选项;另一种是通过代码。下面是一个简单的代码片段,展示了我们如何从 rpt 文件创建一个名为 report 的对象,指定打印机名称、纸张大小,然后调用“PrintToPrinter”方法。
Report.PrintOptions.PrinterName = "MyPrinter"
Report.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4
Report.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape
Report.PrintToPrinter(1, True, 1, 3)
我们如何生成交叉表报告?
当我们创建新报表时,您可以看到交叉表选项。
图 12:- 交叉表报表
我们如何在 Crystal Reports 中进行分组?
要在 Crystal Reports 中进行分组,您需要使用分组专家向导。
您能解释一下 Crystal Reports 使用的三遍报告吗?
Crystal Reports 使用三遍方法解析报表。在我们理解这意味着什么之前,让我们定义什么是“遍”?遍是 Crystal Reports 用于根据报表格式读取和操作数据的过程。下图“三遍方法”显示了解析是如何发生的。让我们逐步理解。在预处理第 1 遍中,Crystal Reports 引擎会为报表评估常量,例如 x=1 和 pie=3.14。第 1 遍执行两个重要的事情:从数据库获取数据并根据给定条件对记录进行排序。完成此操作后,它会保存在内存中并交给预处理第 2 遍进行进一步的解析和操作。预处理第 2 遍主要根据 Crystal Reports 中指定的条件对记录进行分组和排序。第 2 遍格式化报表,应用条件并进行分组。第 3 遍是最终的通道,它只计算页数并生成报表。
图 13:- 三遍方法
您能解释一下 Reporting Services 架构吗?
Reporting Services 主要用于生成报表。Reporting Services 的主要组件如下图“Reporting Services 架构”所示。Reporting Services 有四个主要组件:客户端、Web 服务、报表服务器/管理器和 Reporting Services 数据库。让我们详细了解所有主要组件及其子组件。
图 14:- Reporting Services 架构
客户端:- 这些是 Reporting Services 功能的使用者。它可以是报表管理器或报表服务器(我们将在后面更详细地讨论报表服务器和管理器),也可以是 ASPX 和 Windows 应用程序。
Reporting Web 服务:- Microsoft 选择 XML 来公开 Reporting Services 的功能。因此,所有功能都通过 Web 服务公开。Web 服务最重要的优点之一是它可以独立于平台。
报表服务器/管理器:- 报表服务器和管理器构成 Reporting Services 的核心引擎。它们是两个重要的系统,一个是“报表处理器”,另一个是
“计划和交付处理器”。 报表处理器是交付报表的主要驱动程序。它们接收最终用户的请求,处理报表并将其发送给最终客户端。图“报表处理器”显示了流程如何运行。我们有七个基本步骤可以帮助我们更详细地了解报表处理器的工作原理。步骤 1 -> 任何客户端,如 ASPX 或 Windows 应用程序,将向 Web 服务请求报表。步骤 2 和 3 -> Web 服务将请求转发给报表处理器,并从报表服务器数据库获取报表定义。步骤 4 -> Reporting Services 使用安全扩展来验证最终用户。步骤 5 -> 数据处理扩展调用查询应用程序数据库以获取数据。通过数据处理扩展,我们可以连接到标准数据源,如 SQL Server、ODBC、Oracle 等。您还可以扩展数据处理扩展以适应某些自定义数据处理扩展。步骤 6 -> 呈现扩展然后呈现报表,应用格式,并将其发送给最终客户端。使用呈现扩展,您可以以 Excel、PDF、HTML、CSV 和 XML 格式交付报表。您还可以扩展呈现扩展以交付自定义格式。
图 15:- 报表处理器
第二个系统是“调度和交付处理器”。交付扩展以指定的格式制作报表,并将其发送到文件、电子邮件、FTP 等输出目标。调度和交付处理器执行两个重要步骤:调度报表并将其交付给 FTP、电子邮件等输出。调度和交付处理器使用交付扩展将报表交付给定义的输出。因此,用户可以订阅报表,并根据这些订阅由调度和交付处理器完成交付。这包括订阅过程和交付过程两个步骤。让我们首先尝试理解订阅过程。基本有三个步骤:-
步骤 1 -> 首先是请求订阅报表。
步骤 2 -> 此订阅随后存储在报表服务器数据库中。
步骤 3 -> 为此订阅创建一个新的 SQL Server 代理。这样我们就完成了订阅过程。
图 16:- 订阅过程
既然订阅已创建,我们来看看交付过程是如何工作的。交付过程有五个基本步骤。步骤 1 -> 当事件发生时,SQL Server 代理在报表服务器数据库中进行记录。步骤 2 和 3 -> RS Windows 服务不断轮询 SQL Server 以获取任何事件。如果事件发生,它会从数据库获取事件并向“调度和交付处理器”发送消息。步骤 4 -> 然后报表由报表处理器处理并发送给交付扩展,交付扩展最终将其交付到输出,该输出可以是电子邮件地址、文件夹、FTP 或任何其他类型的输出。
图 17:- 交付过程
Reporting Services 数据库:- 当您安装 Reporting Services 时,您会看到两个数据库:“ReportServer”和“ReportServerTempDB”。“ReportServer”数据库包含报表定义、计划、订阅、安全详细信息和快照。“ReportServerTempDB”存储临时信息,例如 HTTP 请求之间所需的报表会话状态和报表缓存信息。请注意,快照存储在 reportserver 中,而不是 tempDB 中。
图 18:- Reporting Services 的数据库
如需进一步阅读,请观看以下面试准备视频和分步视频系列。