为报表创建数据源

客户端报表定义 (.rdlc) 文件包括用于定义报表所用数据源结构的数据集元素。 您必须先向报表中添加一个或多个数据集,然后才能在报表定义中使用数据。 创建数据集后,您可以将特定的字段拖动到报表中的数据区域或文本框。

客户端报表定义 (.rdlc) 文件由 ReportViewer 控件作为本地报表进行处理。 与服务器报表不同,本地报表要求先处理数据,然后才能由 ReportViewer 控件处理报表。 本地报表可以使用来自任何源的数据,只要数据可以作为业务对象的 DataTableIEnumerable 集合提供即可。 数据表或业务对象会返回报表可以使用的字段的列表。 每个字段均包含一个指向数据库字段和名称属性、对象数据源中的字段或 DataTable 中的列的指针。 您可以将字段从**“报表数据”**窗口中拖动到报表的设计图面上。

在项目中配置数据源

建议采用以下方法作为报表数据源设置业务对象的 DataSetIEnumerable 枚举。 配置数据源后,您可以将 DataSet 或业务对象绑定到报表。

ms252094.collapse_all(zh-cn,VS.140).gif使用数据表

若要创建 DataTable,请使用**“项目”菜单上的“添加新项”命令并选择“数据集”对象。 将“TableAdapter”从工具箱中拖动到“数据集编辑器”**以使用 TableAdapter 向导配置 DataTable。 TableAdapter 向导提供了查询生成器和数据预览功能,使您可以立即确认查询结果。

ms252094.collapse_all(zh-cn,VS.140).gif使用业务对象

业务对象是公开简单数据类型的公共属性的任意应用程序对象。 例如,由应用程序创建的一个 Book Title 对象数组是可用作报表的数据源的业务对象。

若要能够作为数据源进行访问,类必须公开返回 IEnumerable 的方法或属性。 您可以向项目中添加类或对类的程序集的引用。

使用业务对象的步骤在 Windows 窗体与 ASP.NET 项目之间有所不同。 有关在 Windows 窗体中使用业务对象的说明,请参见演练:在本地处理模式下将业务对象数据源与 ReportViewer Windows 窗体控件一起使用。 有关在 ASP.NET 中使用业务对象的说明,请参见演练:在本地处理模式下将业务对象数据源与 ReportViewer Web 服务器控件一起使用

将数据绑定到报表

报表定义 (.rdlc) 文件会绑定到包含您所需数据的 DataSet 对象或业务对象。 使用报表向导创建报表时,报表向导会指导您完成创建具有您所需数据的 DataSet 对象并将其绑定到报表的步骤。 您还可以手动将 DataSet 或业务对象绑定到**“报表数据”**窗口中的报表。 此窗口会显示绑定到报表的所有数据集,这些数据集按 DataSet 对象进行分组。

ms252094.collapse_all(zh-cn,VS.140).gif将数据集绑定到报表

  1. 在报表设计器的**“报表数据”窗口中,单击“新建”,再选择“数据集”**。

  2. 在**“数据源”列表框中,选择您创建的 DataSet 对象。 若要创建新的 DataSet,请单击“新建”,然后完成 Visual Studio 提供的数据源配置向导。 如果您已创建业务对象,请选择“全局”**来访问该业务对象。

  3. 在**“可用数据集”**列表框中,选择想要绑定到的数据。 此列表框会显示可用的 DataTable 或业务对象。

  4. 在**“名称”框中,指定该数据集的名称,再单击“确定”**。

如果您在定义报表以后修改 DataSet 架构,则必须更新报表和控件中的数据绑定。 有关更多信息,请参见更新和重新绑定数据源引用

您的报表中可以有任意数量的数据集。 若要查看报表实际使用的数据集的列表,请在**“视图”菜单上选择“报表数据”**。 若要在应用程序中查看报表及其数据,则必须生成或部署应用程序才能验证报表是否包含您所需的数据。 有关配置控件和定义报表布局的更多信息,请参见将 ReportViewer 配置为进行本地处理创建客户端报表定义 (.rdlc) 文件

若要立即开始操作,请使用下列演练了解如何向项目中添加各种类型的数据源:

为 ReportViewer Web 服务器控件定义数据源

数据源控件支持提取数据访问层,以便网页上的控件绑定到数据源,而该数据源随后绑定到实际数据。 这使您可以有效地更改数据源,而无需将每个控件重新绑定到每个数据块。

设计网页时,工具箱中的**“数据”**部分会列出多个数据源控件,例如 SqlDataSourceXmlDataSource。 某些数据源控件支持在网页中使用页内存,其他控件则使用共享数据。 因为报表不使用页内存,所以对于 ReportViewer Web 服务器控件,最佳选择是使用 ObjectDataSource 控件。 此控件在内存中缓存的对象(DataTable 或业务对象集合)和报表之间起到桥梁作用。 如果向网页中添加了 ReportViewer 控件,将会自动添加和配置 ObjectDataSource 控件。

请参见

参考

ReportViewer.Drillthrough

LocalReport.SubreportProcessing

ReportViewer.Drillthrough

LocalReport.SubreportProcessing

概念

将 ReportViewer 配置为进行远程处理

更新和重新绑定数据源引用

TableAdapter 概述

其他资源

示例和演练