本演练说明如何在 Microsoft Visual Studio 2005 Windows 应用程序项目中创建报表,以及如何向 Windows 窗体添加 ReportViewer 控件以便使用该应用程序的用户可以查看报表。
若要使用本演练,必须有一个可操作的示例数据存储区。如果没有示例数据存储区,可以从 www.microsoft.com/downloads 下载 AdventureWorks 示例数据库(在“搜索以下载”文本框中输入“SQL Server 2005 Express Edition 文档和示例”。您可以使用 SQL Server Express 或支持与数据库连接的 SQL Server 实例。)
本演练假设您使用的是 SQL Server Express 和 AdventureWorks 数据库。
在计算机上执行下列步骤可向 Visual Studio Windows 应用程序项目添加报表。在本示例中,将用 Microsoft Visual Basic 创建应用程序。
-
打开 Visual Studio。在“文件”菜单上,指向“新建”,然后选择“项目”。
-
在“项目类型”窗格中,选择 Visual Basic。
-
在“模板”窗格中,选择“Windows 应用程序”以创建 Microsoft Windows 应用程序。
-
在“名称”框中,键入项目的名称 ReportWalkthrough。
-
在“位置”框中,输入要保存项目的目录,或单击“浏览”导航到该目录。将打开 Windows 窗体设计器,其中显示了所创建项目的 Form1.vb。
-
在解决方案资源管理器中,右键单击名为 ReportWalkthrough 的项目(而不是解决方案),指向“添加”,然后选择“新建项”。
-
在“添加新项”对话框中,单击“数据集”。
-
输入数据集的名称,然后单击“添加”。这样便将名为 DataSet1.xsd 的新 XML 架构文件(带有 .xsd 文件扩展名)添加到项目中,并打开数据集设计器。
-
在数据集设计器模式中,打开工具箱,然后将 TableAdapter 拖到数据集设计图面。这样将打开 TableAdapter 配置向导。
-
在“选择您的数据连接”页上,单击“新建连接”。
-
在“数据源”对话框中,选择 Microsoft SQL Server。在“服务器名称”对话框中,输入 AdventureWorks 所在的服务器。建立连接后,从数据库下拉列表中选择 AdventureWorks,然后单击“确定”进入向导的下一页。
-
在“将连接字符串保存到应用程序配置文件中”页上,键入连接字符串的名称或接受默认名称 AdventureWorksConnectionString。单击“下一步”。
-
在“选择命令类型”页上,选择“使用 SQL 语句”。
-
在“输入 SQL 语句”页上,输入下面的 Transact-SQL 查询来检索 AdventureWorks 数据库中的数据,然后单击“完成”:
-- Calculate the number of employees on each Shift by Department
SELECT d.name as Dept, s.Name as Shift, COUNT(*) as EmployeeCount
FROM (HumanResources.Department d
INNER JOIN HumanResources.EmployeeDepartmentHistory e
ON d.DepartmentID = e.DepartmentID)
INNER JOIN HumanResources.Shift s
ON e.ShiftID = s.ShiftID
GROUP BY d.Name, s.Name
ORDER BY Dept, Shift
也可以单击“查询生成器”按钮,使用查询生成器创建自己的查询,并使用“执行查询”按钮检查所创建的查询。
-
在“选择要生成的方法”页上,接受默认设置(“方法名称”为 Fill 的“填充 DataTable”和“方法名称”为 GetData 的“返回 DataTable”)。单击“下一步”。
-
在“向导结果”页上,单击“完成”。
-
“数据集设计器”页上将显示 DataTable1,其中列出了通过查询定义得到的列。从“数据”菜单中,选择“显示数据源”,然后展开 DataTable1 节点来查看这些列。在下一步中将数据绑定到报表时,将使用“数据源”窗口。
-
若要向项目添加报表,请右键单击解决方案资源管理器中的项目名称(而不是解决方案名称)。
-
在快捷菜单上,指向“添加”,然后单击“新建项”。将打开“添加新项”对话框。
-
单击“报表”图标,输入报表文件的名称。默认情况下,报表名为 Report1.rdlc。单击“添加”。将打开报表设计器。
-
打开工具箱。将一个 Table 报表项从工具箱拖到报表中。
-
在“数据源”窗口中,展开 DataTable1 来查看列。将 Dept 字段拖到表中第一列的中间行上。中间行为 Detail 行。请注意,当指定 Detail 行时,将自动填充 Header 行。
-
将 Shift 字段拖到第二列的 Detail 行上,使其位于 Dept 字段的旁边。
-
将 EmployeeCount 字段拖到第三列的 Detail 行上,使其位于 Shift 字段的旁边。
-
或者,单击第一行左侧的“表格表头”图标并选择粗体格式样式。
-
单击 Form1.vb,以设计模式打开窗体。
-
将 ReportViewer 图标从 Visual Studio 工具箱的“数据”部分拖动到窗体。根据需要,调整窗体宽度和 ReportViewer 控件的宽度。
-
通过单击右上角的三角形来打开 ReportViewer 控件的智能标记面板。单击“选择报表”下拉列表,选择 ReportWalkthrough.Report1.rdlc。选择报表将导致自动创建报表中使用的数据源实例。将生成代码以实例化与报表中使用的每个数据源相对应的 DataSet(DataTable 的 ADO.NET 容器)、TableAdapter 组件和 BindingSource 对象。
-
在“生成”菜单上,单击“生成 ReportWalkthrough”。在生成过程中,将编译报表。通过将某些错误(如报表中所用的表达式的语法错误)添加到“任务列表”中,可以标记出这些错误。
-
按 F5 运行应用程序并在窗体中查看报表。
参考信息
Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing
概念
使用“ReportViewer 任务”智能标记面板
其他资源
示例和演练