演练:在本地处理模式下将数据库数据源与 ReportViewer Web 服务器控件一起使用
本演练演示如何为 ASP.NET 网站创建报表,以及如何向网页中添加 ReportViewer 控件,以便用户可以查看该报表。
先决条件
若要使用本演练,您必须有权访问 AdventureWorks2008 示例数据库。有关更多信息,请参见演练:安装 AdventureWorks 数据库。
通过在计算机上执行下列步骤,可以创建包含 ReportViewer 控件的 ASP.NET 网页,并配置该控件以查看本地报表。对于本示例,在 Microsoft Visual Basic 中创建应用程序。
创建新的网站
在**“文件”菜单中,指向“新建”,选择“网站”**。
在**“新建网站”对话框中的“已安装的模板”窗格中,选择“Visual Basic”,然后选择“ASP.NET 网站”**。
在**“位置”框中,指定项目目录,然后单击“确定”**。
此时将打开网站项目。
通过添加数据集来定义数据连接和数据表
在**“网站”菜单上选择“添加新项”**。
在**“添加新项”对话框中,选择“数据集”,然后单击“添加”。在系统提示是否要将该项添加到“App_Code”文件夹中时,请单击“是”**。
这会向项目中添加一个新的 XSD 文件“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 数据库。
现在已完成将 ADO.NET DataTable 配置为报表的数据源。在 Visual Studio 的“数据集设计器”页上,应看到添加的 DataTable(默认名称为 DataTable1),其中列出了从查询定义得到的列。您可以从**“数据”菜单中选择“预览数据”,然后单击“预览”**按钮来检查查询结果。
在**“选择要生成的方法”页上,单击“完成”**。
保存该文件。
使用报表向导设计报表
请确保在**“解决方案资源管理器”**中选中了顶级网站。
右击网站并选择**“添加新项”**。
在**“添加新项”对话框中,选择“报表向导”,输入报表文件的名称,然后单击“添加”**。
这将启动报表向导。
在**“数据集属性”页的“数据源”框中,选择您创建的“数据集”**。
**“可用数据集”框会使用您创建的“数据表”**自动更新。
单击**“下一步”**。
在**“排列字段”**页中,执行以下操作:
将**“Dept”从“可用字段”拖到“行组”**框。
将**“Shift”从“可用字段”拖到“列组”**框。
将**“EmployeeID”从“可用字段”拖到“值”**框。
单击**“Sum(EmplyeeID)”旁边的箭头,然后选择“计数”**。
单击两次**“下一步”,然后单击“完成”关闭“报表向导”**。
这将创建 .rdlc 文件并在报表设计器中将其打开。所设计的 tablix 会立即显示在设计图面中。
保存 .rdlc 文件。
向应用程序添加 ReportViewer 控件
在**“解决方案资源管理器”中,右击 Web 窗体 Default.aspx,然后选择“视图设计器”**。
打开**“工具箱”窗口。从“AJAX Extensions”组中,将“ScriptManager”**控件拖动到设计图面上。
从**“工具箱”窗口的“报表”组中,将“ReportViewer”控件拖到“ScriptManager”**控件下的页上。
如果尚未打开**“ReportViewer 任务”智能标记面板,请将其打开,方法是单击右上角的智能标记标志符号。在“选择报表”**框中,选择创建的报表。
选择报表后,将自动创建报表中使用的数据源的实例。并生成代码以实例化每个 DataTable(及其 DataSet 容器)以及与报表中使用的每个数据源相对应的 ObjectDataSource 控件。此数据源控件自动进行配置。
编译和运行应用程序
按**“Ctrl+F5”可在不调试的情况下运行页面,按“F5”**则会在运行页面时进行调试。
在生成过程中,会编译报表并将发现的所有错误(例如报表中所用的表达式中的语法错误)都添加到**“任务列表”**中。
网页显示在浏览器中。ReportViewer 控件显示报表。可以使用工具栏浏览报表、缩放及导出到 Excel。
关闭浏览器。
请参阅
参考
LocalReport.SubreportProcessing
LocalReport.SubreportProcessing