演练:在本地处理模式下将数据库数据源与 ReportViewer Windows 窗体控件一起使用
本演练演示如何在 Windows 窗体应用程序项目中创建报表,以及如何将 ReportViewer 控件添加到 Windows 窗体中,以便该应用程序的用户可以查看报表。
先决条件
若要使用本演练,您必须有权访问 AdventureWorks2008 示例数据库。有关更多信息,请参见演练:安装 AdventureWorks 数据库。
执行下列步骤将报表添加到 Windows 窗体应用程序项目中。对于此示例,在 Microsoft Visual Basic 中创建应用程序。
创建一个新的 Windows 应用程序项目
打开 Visual Studio。在**“文件”菜单上,指向“新建”,然后选择“项目”**。
在**“已安装的模板”窗格中,选择“Visual Basic”,然后选择“Windows 窗体应用程序”。根据 Visual Studio 中的启动设置,“Visual Basic”节点可能会显示在“其他语言”**之下。
在**“名称”**框中,键入项目的名称:ReportWalkthrough。
在**“位置”框中,输入要保存项目的目录,或者单击“浏览”**以导航到该目录。
单击“确定”。
随即会打开 Windows 窗体设计器,其中将显示所创建的项目的“Form1.vb”。
定义数据源连接和数据表
在**“项目”菜单上选择“添加新项”**。
在**“添加新项”对话框中,单击“数据集”**。
为数据集输入名称,再单击**“添加”。这会向项目中添加一个新的 XML 架构文件并打开“数据集设计器”**。默认名称为“DataSet1.xsd”。
在**“数据集设计器”中,打开“工具箱”,然后将“TableAdapter”**拖至数据集设计图面。这样将打开 TableAdapter 配置向导。
在“选择您的数据连接”页上,单击**“新建连接”**。
如果这是您首次在 Visual Studio 中创建数据源,则会显示**“选择数据源”页。在“数据源”框中,选择“Microsoft SQL Server”**。
在**“添加连接”**页上,请执行下列步骤:
在**“服务器名称”**框中,输入 AdventureWorks2008 数据库所在的服务器名称。
默认的 SQL Server Express 实例为**“(local)\sqlexpress”**。
在**“登录到服务器”部分中,选择提供对数据的访问权限的选项。默认选项为“使用 Windows 身份验证”**。
在下拉列表中,单击**“AdventureWorks2008”**。
单击**“确定”**继续返回到向导。
如果在上一步中指定了**“使用 SQL Server 身份验证”**,则选择是在字符串中包含敏感数据还是在应用程序代码中设置信息的选项。
单击**“下一步”**。
在**“将连接字符串保存到应用程序配置文件中”页上,为连接字符串键入名称或接受默认的“AdventureWorks2008ConnectionString”。单击“下一步”**。
在**“选择命令类型”页上,选择“使用 SQL 语句”,然后单击“下一步”**。
在**“输入 SQL 语句”页上,输入以下 Transact-SQL 查询以从 AdventureWorks2008 数据库中检索数据,然后单击“完成”**。
SELECT d.name as Dept, s.Name as Shift, e.BusinessEntityID as EmployeeID FROM (HumanResources.Department d INNER JOIN HumanResources.EmployeeDepartmentHistory e ON d.DepartmentID = e.DepartmentID) INNER JOIN HumanResources.Shift s ON e.ShiftID = s.ShiftID
也可以单击**“查询生成器”按钮,使用查询生成器创建自己的查询,并使用“执行查询”**按钮检查所创建的查询。如果查询未返回所需的数据,则说明您可能正在使用 AdventureWorks 的早期版本。有关安装 AdventureWorks 的 AdventureWorks2008 版本的更多信息,请参见演练:安装 AdventureWorks 数据库。
在**“选择要生成的方法”页上,单击“完成”**。
在“数据集”设计图面上应显示 DataTable1,其中列出了从查询中得到的列。
使用报表向导设计报表
在**“项目”菜单上选择“添加新项”**。
在**“添加新项”对话框中,单击“报表向导”**。
为报表文件输入一个名称。默认情况下,报表名称为“Report1.rdlc”。单击**“添加”**。
这将启动报表向导。
在**“数据集属性”页的“数据源”框中,选择您创建的“数据集”**。
**“可用数据集”框会使用您创建的“数据表”**自动更新。
单击**“下一步”**。
在**“排列字段”**页中,执行以下操作:
将**“Dept”从“可用字段”拖到“行组”**框。
将**“Shift”从“可用字段”拖到“列组”**框。
将**“EmployeeID”从“可用字段”拖到“值”**框。
单击**“Sum(EmplyeeID)”旁边的箭头,然后选择“计数”**。
单击两次**“下一步”,然后单击“完成”**。
这将创建 .rdlc 文件并在报表设计器中将其打开。所设计的 tablix 会立即显示在设计图面中。
保存 .rdlc 文件。
向应用程序添加 ReportViewer 控件
在设计模式下,打开项目中的 Form1.vb 文件。
在**“窗体”属性窗口中,展开“大小”属性,然后将“高度”**属性设置为 700。
从“工具箱”的**“报表”部分将“ReportViewer”**控件拖到窗体上。
通过单击右上角的智能标记标志符号,打开 ReportViewer 控件的智能标记面板。单击**“选择报表”**下拉列表,然后选择所创建的报表。选择报表将导致自动创建报表中使用的数据源实例。将生成代码以实例化与报表中使用的每个数据源相对应的 DataSet(DataTable 的 ADO.NET 容器)、TableAdapter 组件和 BindingSource 对象。
在打开的智能标记面板中,选择**“在父容器中停靠”**。
编译和运行应用程序
在**“生成”菜单上,单击“生成 ReportWalkthrough”。在生成过程中,将编译报表。如果将某些错误(例如报表中所用的表达式中的语法错误)添加到“任务列表”**中,可以标记出这些错误。
按**“F5”**运行应用程序并在窗体中查看报表。
请参阅
参考
LocalReport.SubreportProcessing
LocalReport.SubreportProcessing