将 ReportViewer 配置为进行远程处理

可以将 ReportViewer 控件配置为使用 Microsoft SQL Server 2005 Reporting Services 报表服务器的处理功能。报表服务器用于处理数据并以输出格式呈现报表。ReportViewer 控件检索报表服务器中已完成的报表并将其显示在屏幕上。

若要使用服务器报表,您必须有权访问 SQL Server 2005 Reporting Services 报表服务器,并且所选的报表必须已发布在该报表服务器上。ReportViewer 控件要求提供仅通过 SQL Server 2005 SOAP 执行终结点公开的信息。这些控件不支持 SQL Server 2000 Reporting Services 报表服务器上运行的报表。

可以通过打开浏览器窗口并在 URL 地址中键入报表服务器 URL 和报表路径来验证您是否具有对报表的访问权限。配置与报表服务器间的连接时,应使用有权查看报表的帐户进行连接。默认情况下,该帐户为线程用户。在 Windows 应用程序中,线程用户通常为用户帐户。在 ASP.NET 应用程序中,线程用户通常为 ASP.NET 帐户。不管如何配置连接,都必须确保报表服务器上存在角色分配,向用于建立连接的帐户授予报表访问权限。若要了解有关连接配置的详细信息,请参阅 IReportServerCredentials

如何配置 ReportViewer 以进行远程处理

若要配置 ReportViewer 控件以实现远程处理,请指定要与该控件一起使用的服务器报表。执行下列步骤选择服务器报表:

  1. 将工具箱“数据”部分的 ReportViewer 控件添加到项目中的窗体或网页。

  2. 在**“ReportViewer 任务”智能标记面板的“选择报表”中,选择“服务器报表”**。

  3. 在**“报表服务器”**文本框中,键入报表服务器 URL。默认 URL 语法为 https://localhost/reportserver。安装时使用的实际 URL 可能会有所不同,具体取决于报表服务器虚拟目录设置的配置方式。

  4. 在**“报表路径”**文本框中,键入已发布报表的完全限定路径。报表路径必须以正斜杠 ( / ) 开头。路径不能包括报表 URL 参数。路径由报表服务器文件夹命名空间中的文件夹和报表名称组成。例如,如果在报表服务器上安装了 SQL Server 2005 示例报表 Company Sales,则报表路径可能为 /AdventureWorks Sample Reports/Company Sales

  5. 生成或部署应用程序以验证报表是否正确显示在应用程序中。如果收到 HTTP 代理错误,请验证报表服务器的 URL 是否正确。如果收到兼容性错误,请确认该报表服务器是否为 SQL Server 2005 实例。

  6. 选择 ReportViewer 控件并打开“属性”窗口。

  7. 设置 ReportViewer 控件的属性,以配置报表工具栏和运行时功能。参阅引用文档来了解每个属性。有关更多信息,请参见 ReportViewer 属性

了解服务器报表的特征

服务器报表和本地处理的报表在外观和功能上有着明显的差别。下表描述了要进行远程处理的服务器报表的特征:

报表处理

服务器报表在 SQL Server 2005 Reporting Services 报表服务器上运行。服务器报表是从在 SQL Server 2005 报表设计器中创建的报表定义 (.rdl) 文件中发布的。.rdl 文件的构成与在 ASP.NET 或 Windows 应用程序项目中创建的 .rdlc 文件的构成稍有不同。您可以轻易地将报表定义文件调整为在报表服务器或控件中运行。有关 .rdl 和 .rdlc 之间差异的详细信息,请参阅 转换 RDL 文件和 RDLC 文件

数据处理

服务器报表使用报表服务器的数据处理扩展插件连接并处理结果集。为 SQL Server、Analysis Services、SQL Server Integration Services、Oracle、SAP NetWeaver® Business Intelligence、XML、ODBC 和 OLE DB 数据源提供了默认的数据处理扩展插件。您可以创建或使用自定义数据处理扩展插件来支持其他类型的数据。

与客户端报表不同,服务器报表的报表定义中包含数据源连接信息以及一个或多个查询。对于服务器报表,数据处理和报表处理是集成的。因此,服务器报表可能包括映射到查询参数的报表参数或在运行时合并查询结果的表达式。

参数化

服务器报表可以在顶部包括参数输入区,以便用户可以键入或选择要在查询中使用的参数值。在客户端报表定义中,必须在窗体或网页中提供参数输入区域。

连接到外部服务器

服务器报表使用的数据源通常会从其他服务器上的外部数据源中检索数据。当在应用程序中运行服务器报表时,请确保您了解报表服务器连接至报表外部数据源以及从中检索数据的方式。如果报表使用 Windows 集成安全性,则会限制用户安全令牌能够传递到其他计算机的次数。如果必须使用相同的令牌进行多个连接,则通过应用程序访问报表的用户可能会遇到连接错误。如果将报表配置为提示输入凭据,或报表服务器使用基于窗体的身份验证,则用户可能需要键入用户名和密码才能查看报表。请注意,ReportViewer 控件不提供提示凭据页。如果应用程序连接到使用基于窗体的身份验证的报表服务器,则应用程序必须提供登录页。

管理报表

服务器报表是在报表服务器中进行管理的。报表服务器管理员可以修改提供访问报表权限的角色分配,重新配置数据源连接,以及更新、移动、重命名或删除报表。所有这些更改都会影响或阻止报表在应用程序中运行。在应用程序中使用服务器报表时,请确保您了解部署应用程序之后应如何管理报表。

有关 SQL Server Reporting Services 的报表设计、数据检索、部署和安全设置的详细信息,请参阅 SQL Server 2005 联机丛书。SQL Server 2005 联机丛书可以通过 SQL Server 2005 安装介质进行安装。也可以从 www.microsoft.com 上获得。

何时使用远程处理

利用基于服务器的报告功能,可以实现下列目的:集中存储和管理报表、设置策略和确保对报表及文件夹的安全访问、控制处理和分发报表的方式,以及设置在业务中使用报表的标准方式。Reporting Services 可以以单服务器、分布式和群集配置的方式进行安装。如果报表具有下列特征,请考虑使用远程处理:

  • 报表将被许多用户访问。

  • 报表有一个非常复杂的查询或包含大量数据,从而导致应用程序所在的计算机上的系统资源超载。

  • 报表已发布在报表服务器上,并且希望将其包含在所创建和部署的应用程序中。

另请参见

概念

转换 RDL 文件和 RDLC 文件
添加和配置 ReportViewer 控件
将 ReportViewer 配置为进行本地处理
部署报表和 ReportViewer 控件