演练:创建 ReportViewer 报表

此演练显示了如何在 Microsoft Visual Studio 2005 Windows 应用程序项目中根据 AdventureWorks 示例数据库创建基本表报表。您将执行以下操作:向项目添加报表模板、为 AdventureWorks 数据库设置连接信息、定义查询、添加表数据区域以及向 Windows 窗体添加 ReportViewer Windows 窗体控件,以使应用程序的用户可以查看报表。

先决条件

若要使用此演练,您必须有一个可以使用的示例数据存储区。如果您没有示例数据存储区,可以从 http://www.microsoft.com/downloads 下载 AdventureWorks 示例数据库(在“搜索以下载”文本框中输入“SQL Server 2005 Express Edition 文档和示例”)。您可以使用 SQL Server Express 或支持连接到数据库的 SQL Server 实例。

此演练假定您使用的是 SQL Server Express 和 AdventureWorks 数据库。

对于此示例,应用程序是使用 Microsoft Visual Basic 创建的。

创建新的 Windows 应用程序项目

  1. 打开 Visual Studio。在“文件”菜单上,指向“新建”,然后选择“项目”。

  2. 在“项目类型”窗格中,选择 Visual Basic。

  3. 在“模板”窗格中,选择“Windows 应用程序”来创建 Microsoft Windows 应用程序。

  4. 在“名称”框中,键入 BasicReport。

  5. 在“位置”框中,输入您要保存项目的目录,或单击“浏览”导航到所需位置。将打开 Windows 窗体设计器,显示您创建的项目的 Form1。

创建新的报表定义文件

  1. 在解决方案资源管理器中,右键单击“报表”,指向“添加”,再单击“新建项”。

    注意

    如果“解决方案资源管理器”窗口不可见,请单击“查看”菜单中的“解决方案资源管理器”。

  2. 在“添加新项”对话框中,单击“报表”。

  3. 在“名称”中,键入 Sales Orders.rdlc,再单击“添加”打开图形设计图面。这是 Visual Studio 2005 的报表设计器组件。

定义数据源连接和 DataTable

  1. 在解决方案资源管理器中,右键单击名为 BasicReport 的项目(不是解决方案),指向“添加”,然后选择“新建项”。

  2. 在“添加新项”对话框中,单击“数据集”。

  3. 为数据集输入名称,再单击“添加”。这将名为 DataSet1.xsd 的新 XSD 文件添加到项目中,并打开数据集设计器。

  4. 在数据集设计器模式下,打开工具箱,然后将 TableAdapter 拖至数据集设计图面。这将启动 TableAdapter 配置向导。

  5. 在“选择您的数据连接”页中,单击“新建连接”。

  6. 在“数据源”对话框中,选择 Microsoft SQL Server。在“服务器名称”对话框中,输入 AdventureWorks 数据库所在的服务器。一旦连接上,请从数据库下拉列表中选择 AdventureWorks,再单击“确定”继续到向导的下一页。

  7. 在“将连接字符串保存到应用程序配置文件中”页上,为连接字符串键入名称或接受默认的 AdventureWorksConnectionString。单击“下一步”。

  8. 在“选择命令类型”页上,选择“使用 SQL 语句”。

  9. 在“输入 SQL 语句”页上,输入以下 Transact-SQL 查询以检索 AdventureWorks 数据库中的数据,再单击“完成”:

    SELECT  S.OrderDate, S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName
    FROM    Sales.SalesOrderHeader S INNER JOIN
            Person.Contact C ON S.ContactID = C.ContactID

    您还可以单击“查询生成器”按钮,然后使用查询生成器来创建自己的查询,并使用“执行查询”按钮来对其进行检查。

  10. 在“选择要生成的方法”页上,接受默认值“填充 DataTable”(“方法名称”:Fill)和“返回 DataTable”(“方法名称”:GetData)。单击“下一步”。

  11. 在“向导结果”页上,单击“完成”。

  12. 在“数据集设计器”页上,应看到 DataTable1,其中列出了从查询定义中得到的列。在“数据”菜单上,选择“显示数据源”并展开 DataTable1 节点来查看这些行。在下一个过程中将数据绑定到您的报表时使用“数据源”窗口。

向报表布局添加表

  1. 以图形设计模式打开 Sales Orders.rdlc。

  2. 在工具箱中,单击“表”,再单击设计图面。报表设计器将在设计图面的宽度内绘制一个包含三列的表。

  3. 在“数据源”窗口中,展开报表数据集以显示字段。

  4. 将“数据源”窗口中的 OrderDate 字段拖至该表中第一列的中间行(详细信息行)。

    将字段拖至中间单元时,会发生两件事。首先,详细信息单元将包含文本“=Fields!OrderDate.Value”。该文本是为 OrderDate 字段指定数据值的字段表达式。添加到详细信息行的字段始终被指定为表达式。其次,列标题值自动放置在紧邻字段表达式上面的第一行。默认情况下,该列是字段的名称。

  5. 将“数据集”窗口中的 SalesOrderNumber 字段拖至该表中第二列的中间行(详细信息行)。

  6. 将“数据集”窗口中的 TotalDue 字段拖至该表中第三列的中间行(详细信息行)。

以下关系图显示了已填充了字段 OrderDate、SalesOrderNumber 和 TotalDue 的表数据区域。

具有字段的表数据区域
向表格报表添加组

  1. 单击表,以便在表的上方和旁边显示列句柄和行句柄。

    注意

    句柄是显示在表的上方和旁边的灰框。您可以使用句柄对列、行和表本身执行各种操作。穿过表顶部上下拉伸的句柄是列句柄。沿着表一侧拉伸的句柄是行句柄。列句柄和行句柄的交汇处是角部句柄。若要查看表句柄的示例,请参阅添加表数据区域

  2. 右键单击任何行的句柄,再单击“插入组”。

  3. 在“常规”选项卡上的“分组方式”框中,在第一行选择 =Fields!LastName.Value,在第二行选择 =Fields!FirstName.Value。此操作将按销售人员的姓名对数据进行分组。

    “常规”选项卡,“分组和排序属性”页

  4. 在“排序”选项卡上的“排序方式”框中,在第一行选择 =Fields!LastName.Value,在第二行选择 =Fields!FirstName.Value,它们都按“升序”排序。此操作将按销售人员的姓名对分组进行排序。

    “排序”选项卡,“分组和排序属性”页

  5. 单击“确定”。组头和组尾这两个新行将添加到表中。

向报表的表数据区域添加列

  1. 单击表,以便在表的上方和旁边显示列句柄和行句柄。

  2. 在第一列 (Order Date) 上,右键单击句柄,再单击“在左侧插入列”。

  3. 单击新列中的第二个单元,然后键入以下表达式。第二个单元应该位于在前面的步骤中添加的新组的行中。

    =Fields!FirstName.Value & " " & Fields!LastName.Value
  4. 单击第一列中的第一个单元,然后键入“销售人员”。这是表格表头中列的标签。

该表应与以下关系图类似。

向表数据区域中添加列
对报表中的详细信息数据排序

  1. 单击表,以便在表的上方和旁边显示列句柄和行句柄。

  2. 右键单击角部句柄,再单击“属性”按钮。

    注意

    角部句柄是指列句柄和行句柄交汇处的句柄。

  3. 在“排序”选项卡的“排序方式”框中,选择 =Fields!OrderDate.Value。此时将按订单日期对详细信息数据排序。

  4. 单击“确定”。

“表属性”对话框应与以下关系图类似。

“排序”选项卡,“表属性”页
添加小计

  • 单击最后一列 (Total Due) 中的第四个单元,然后键入以下表达式:

    =Sum(Fields!TotalDue.Value)
表数据区域中的小计表达式
设置数据字段格式

  1. 右键单击包含 OrderDate 字段表达式的单元,再单击“属性”。将显示“文本框属性”对话框。

  2. 打开“格式”选项卡,单击浏览按钮(以省略号 […] 按钮标签表示)打开“选择格式”对话框。

  3. 对于“格式”,请依次选择“标准”、“日期”,然后选择列表中的第三个示例(短日期)。

  4. 单击“确定”关闭“选择格式”对话框,然后再次单击“确定”关闭“文本框属性”对话框。

“选择日期格式”对话框
设置货币字段格式

  1. 右键单击包含 TotalDue 字段表达式的单元,再单击“属性”。

  2. 打开“格式”选项卡,单击浏览按钮(以省略号 […] 按钮标签表示)打开“选择格式”对话框。

  3. 对于“格式”,请依次选择“标准”、“货币”,单击“确定”,然后再次单击“确定”关闭“文本框属性”对话框。

“选择货币格式”对话框
设置表格表头格式

  1. 单击表,以便在表的上方和旁边显示列句柄和行句柄。

  2. 选择第一行、第二行和第四行(包含列标题标签的行、组头行和组尾行)的行句柄,再单击格式设置工具栏上的“粗体”(B) 按钮。

    注意

    若要选择多项,请按住 Ctrl 键,同时单击各项。

  3. 指向列句柄之间的行,使游标变为双箭头。拖动列调整大小。

表数据区域中列的大小调整箭头
添加 ReportViewer 控件并生成应用程序

  1. 切换到设计模式。

  2. 将 Visual Studio 工具箱的“数据”部分中的 ReportViewer 图标拖至窗体。根据需要调整窗体宽度和 ReportViewer 控件宽度。

  3. 通过单击右上角的三角形来打开 ReportViewer 控件的智能标记面板。单击“选择报表”下拉列表,然后选择 SalesOrder.rdlc。

  4. 将所有文件保存在项目中,然后按 F5 来预览报表和应用程序。

另请参见

参考信息

Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing

概念

使用“ReportViewer 任务”智能标记面板

其他资源

示例和演练

标记 :


Page view tracker