Reporting Services 与 Visual Studio 2010 中的 ReportViewer 控件

**“ReportViewer”控件是 Visual Studio 2010 中的 ASP.NET 和 Windows 窗体控件,可将这些控件分别添加到 ASP.NET Web 应用程序/站点的支持 AJAX 的网页中,以及添加到 Windows 窗体应用程序中的某个窗体中。此控件将报表处理和查看功能直接嵌入应用程序。它还提供了一个集成设计环境,以便您可以使用任何 ADO.NET 数据对象的数据生成客户端报表定义 (.rdlc)。使用功能完备的 API,允许您以编程方式访问控件和报表,以便在运行时配置报表功能。此外,Visual Studio 2010 中的 ASP.NET AJAX 控件引入了一组基于 Microsoft AJAX 库生成的 JavaScript API,从而允许宿主应用程序使用客户端编程方式与“ReportViewer”**控件进行交互。

若要了解有关**“ReportViewer”**控件的详细信息,请在 Visual Studio 产品文档中搜索“ReportViewer 控件”。

功能摘要

下表显示如何在报表处理、数据检索、部署以及报表设计方面对 ReportViewer 控件和 Reporting Services 进行比较。可使用此信息来确定哪种 Microsoft 报表技术是您应用程序的最佳选择。

注意注意

在远程处理模式中,Visual Studio 2010 中的 ReportViewer 控件支持 SQL Server 2008 Reporting Services 或 SQL Server 2008 R2 Reporting Services。

功能

ReportViewer 控件

SQL Server Reporting Services

报表处理

本地处理模式:

在客户端应用程序中处理报表。

远程处理模式:

呈现在 SQL Server Reporting Services 报表服务器上处理的服务器报表。

在报表服务器上处理报表。

报表输出格式

本地处理模式:

对于在 Windows 应用程序中运行的报表,格式为 GDI。对于在 ASP.NET 网页中运行的报表,格式为 HTML。

导出格式包括 Excel、PDF 和 Word。

远程处理模式:

可用的呈现格式取决于在 SQL Server Reporting Services 上配置的呈现扩展插件。

HTML、MHTML、TIFF、PDF、Excel、Word、CSV 和 XML。

可以编写自定义输出格式。

报表功能

本地处理模式:

用于多维数据、关系数据和可视数据的交互和静态报表。

可定义在报表中运行的自定义程序集。

可使用表达式提供条件格式与聚合。

远程处理模式:

可用功能由 SQL Server Reporting Services 报表生成器决定。

报表功能包括以本地处理模式在“ReportViewer”控件中运行的报表所提供的所有功能,还包括针对可在报表中创建并运行的自定义报表项的支持。

SQL Server 2008 R2 Reporting Services 还支持另外一些功能,如地图、迷你图、聚合值的聚合,以及处理和呈现增强功能。

数据源类型和数据检索

本地处理模式:

直接绑定到 ADO.NET 数据表,并使用为控件提供的 DataTable 实例。也可直接绑定到业务对象。

远程处理模式:

可用的数据源类型取决于在 SQL Server Reporting Services 报表服务器上配置的事件处理扩展插件。

在报表服务器和远程数据服务器中集成数据与报表处理。

报表服务器中的数据处理扩展插件确定支持的数据源类型。默认数据源包括 SQL Server、Analysis Services、SQL Server Integration Services、Oracle、XML 和 OLEDB。在 SQL Server 2008 R2 Reporting Services 中,还支持以下数据源:SQL Server SharePoint 列表、SQL Azure 和 SQL Server 并行数据仓库。

可创建自定义数据处理扩展插件,以支持其他数据源类型。

报表参数化

本地处理模式:

对报表参数的内置支持可基于静态值对结果集进行有条件筛选。

在本地处理模式中,“ReportViewer”控件不提供用于在数据处理过程中传递所用值的参数输入区域。数据与报表处理之间尚未集成。如果要在运行时接受用户查询参数或报表参数输入,则必须在应用程序中编写代码加以支持。

远程处理模式:

与 SQL Server Reporting Services 相同。

报表参数可映射到查询参数,从而提供了一种在运行时将报表参数值传递到某个查询的方式。默认情况下,报表会提供参数提示区域。参数属性可在设计时进行定义,在运行时进行管理。

报表设计与 Visual Studio 集成

本地处理模式:

在 Visual Studio 中创建客户端报表定义 (.rdlc) 文件。将报表模板添加到项目即可创建报表定义文件,并将文件添加到项目中,然后在 Visual Studio 工作区中打开集成报表设计器。或者,将报表向导模板添加到您的项目,这有助于引导您完成报表创建的各个步骤。

Visual Studio 数据源向导用于提供应用程序中的数据,以备稍后在报表中使用。

Visual Studio 报表设计器不包括“预览”选项卡。若要预览报表,请运行应用程序,再预览嵌入其中的报表。

Visual Studio 报表设计器与报表数据窗口相集成。当用户将字段从“报表数据”窗口拖动到报表时,报表设计器会将有关数据集的元数据复制到报表定义文件中。此元数据由“ReportViewer”控件用于自动生成数据绑定代码。

远程处理模式:

与 SQL Server Reporting Services 相同。

通过 Business Intelligence Development Studio 在 Visual Studio 中创建报表定义。Business Intelligence Development Studio 会添加 SQL Server 组件特定的项目模板。若要创建报表,请从“报表服务器项目”模板或“报表服务器项目向导”模板中选择。

使用“数据”选项卡、“布局”选项卡和“预览”选项卡,您可以在同一个工作区中定义数据、创建报表布局并预览报表。

部署和分发

可再发行控件和 .rdlc 文件可包括在应用程序中。在本地和远程这两种处理模式下,还可以将报表定义作为流传递。

ReportViewer 在所创建并部署的应用程序的 Windows 窗体或网页内承载报表。

ReportViewer 工具栏提供了页面导航、打印、搜索以及导出格式,以支持运行时操作。

部署 SQL Server Reporting Services 报表服务器。报表定义在报表服务器数据库中存储,在服务器中进行处理,在基于浏览器的应用程序或自定义应用程序中进行查看。

报表工具栏提供了页面导航、打印、搜索和导出格式等功能。

查看工具和 SharePoint Web 部件可用于查看报表。

分发功能包括将基于订阅的报表传递到电子邮件地址和文件共享位置。

Internet 访问

如果要在面向 Internet 的 Web 应用程序中使用报表,则建议使用网页中承载的 ReportViewer 控件。

可使用应用程序支持的安全基础结构将控件和报表置于现有的 Web 应用程序中。

可对 Reporting Services 报表服务器进行配置,以便进行 Internet 访问。您可能需要创建自定义身份验证扩展插件、修改配置文件以及针对安全套接字层 (SSL) 配置服务器,视应用程序和用户的要求而定。有关详细信息,请参阅规划 Extranet 或 Internet 部署

企业功能

ReportViewer 控件可承载位于报表服务器扩展部署(报表服务器部署对于控件而言是透明的)中的报表。

您可在任何高可用性部署模型内运行的自定义应用程序中使用此控件。

Reporting Services 支持下列企业功能:

  • 扩展部署。

  • 计划和按需报表处理。

  • 按需创建并可一次使用或保存到服务器的即席报表。

  • 将自定义报表输出路由到动态接受者列表的数据驱动订阅。

  • 管理和配置工具。

自定义

自定义是通过 API 支持的。

您还可以设置报表和 ReportViewer 工具栏的属性,以确定可视性和功能可用性。

可创建扩展插件以添加对数据处理、报表传递、自定义身份验证以及报表呈现的支持。

可设置报表、报表工具栏以及报表服务器的属性。

其他自定义是通过扩展 API 支持的。

示例和演练

在 Visual Studio 产品文档或 MSDN 中搜索 Samples and Walkthroughs in Visual Studio(Visual Studio 中的示例和演练)。

有关 Reporting Services 中的示例和演练的信息,请参阅如何查找教程

文档

在 Visual Studio 产品文档或 MSDN 中搜索 ReportViewer Controls (Visual Studio)(ReportViewer 控件 (Visual Studio))。

Reporting Services 记录在 SQL Server 联机丛书中。