演练:在本地处理模式下将数据库数据源与 ReportViewer Web 服务器控件一起使用
本演练演示如何为 Microsoft Visual Studio 2008 ASP.NET 网站创建报表,以及如何向网页中添加 ReportViewer 控件,以便用户可以查看该报表。
系统必备
若要使用本演练,您必须有权访问 AdventureWorks 示例数据库。有关更多信息,请参见演练:安装 AdventureWorks 数据库。
您还必须对运行 Microsoft Internet Information Services (IIS) 5.0 版或更高版本的服务器具有访问权限,并具有创建 ASP.NET 网页的权限。
通过在计算机上执行下列步骤,可以使用 Visual Studio 2008 模板创建包含 ReportViewer 控件的 ASP.NET 网页,并将该控件配置为能用于查看所创建的报表。对于本示例,在 Microsoft Visual Basic 中创建应用程序。
创建新的网站
在**“文件”菜单中,指向“新建”,选择“网站”**。
在“新建网站”对话框中,选择**“ASP.NET 网站”**。
在**“语言”列表中,选择 Visual Basic,再单击“确定”**。
在**“位置”框中,选择“HTTP”(如果尚未选择),然后单击“浏览”**定位至新文件夹。
在**“选择位置”对话框中,单击“本地 IIS”**,然后定位至网站的根目录。
单击“创建新 Web 应用程序”按钮以创建一个新文件夹,然后键入名称。按 Enter。
单击**“打开”**。
单击**“确定”**。
随即将打开该网站项目,并显示**“Default.aspx”**网页。
在解决方案资源管理器中,检查是否已突出显示**“Default.aspx”**。
在**“查看”菜单上,选择“设计器”**。
现在您就可以修改网站的默认页。
通过添加数据集来定义数据连接和 DataTable
在**“网站”菜单上选择“添加新项”**。
在**“添加新项”对话框中,单击“数据集”。单击“添加”。在系统提示是否要将该项添加到“App_Code”文件夹中时,请单击“是”。这会向项目中添加一个新的 XSD 文件“DataSet1.xsd”,同时打开数据集设计器,并调用“TableAdapter 配置向导”**。
在**“选择您的数据连接”页上,如果 AdventureWorks 是使用 SQLExpress 安装的,则可能会显示可供选择的现有数据连接“sqlexpress.AdventureWorks.dbo”,这时请跳到步骤 6。否则,请单击“新建连接”**。
在**“数据源”对话框中,选择“Microsoft SQL Server (Sql 客户端)”**。
在**“服务器名称”对话框中,输入 AdventureWorks 示例数据库所在的服务器的名称。例如,SQL Server Express 的默认实例名称为“(local)\sqlexpress”。输入服务器名称后,请从数据库下拉列表中选择“AdventureWorks”,然后单击“确定”**。
单击**“下一步”**。
在**“将连接字符串保存到应用程序配置文件中”页上,为连接字符串键入名称或接受默认的“AdventureWorksConnectionString”。单击“下一步”**。
在**“选择命令类型”页上,选择“使用 SQL 语句”**。确认未选择其他单选按钮。
在**“输入 SQL 语句”页上,输入以下 Transact-SQL 查询以从 AdventureWorks 数据库中检索数据,然后单击“完成”。您也可以单击“查询生成器”按钮,然后使用“查询生成器”创建查询,并使用“执行查询”**按钮对其进行检查。
SELECT d.Name as Dept, s.Name as Shift, e.EmployeeID 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 的 SQL Server 2005 版本的更多信息,请参见演练:安装 AdventureWorks 数据库。
在**“选择要生成的方法”页上,接受默认值“填充 DataTable”(“方法名称”:“Fill”)和“返回 DataTable”(“方法名称”:“GetData”)。单击“下一步”**。
在**“向导结果”页上,单击“完成”**。
现在已完成将 ADO.NET DataTable 配置为报表的数据源。
在 Visual Studio 的“数据集设计器”页上,应看到添加的 DataTable(默认名称为 DataTable1),其中列出了从查询定义得到的列。您可以从**“数据”菜单中选择“预览数据”,然后单击“预览”**按钮来检查查询结果。
设计报表
在**“网站”菜单上,选择“添加新项”**。
在**“添加新项”对话框中,选择“报表”模板,输入报表文件的名称,再单击“添加”。这将创建报表定义文件(默认为“Report.rdlc”),启动报表设计器,并显示“网站数据源”**窗格。
打开**“工具箱”**。单击工具箱,然后单击报表设计图面。
在文本框中输入报表标题:“每个部门每次换班的雇员数”。接着根据需要展开文本框。
从**“工具箱”中将“矩阵”**报表项拖动到文本框下的报表上。虚线白色背景是您的报表页。若要调整矩阵在页面上的位置,请单击左角以将其选中,然后根据需要通过拖动或箭头键移动项目。
在**“网站数据源”窗口中,展开“DataTable1”节点,直至看到查询所得到的列。将“Dept”拖动到矩阵第一列第二行的“行”**文本框上。
将**“Shift”拖动到矩阵第二列第一行的“列”文本框上。让该文本框处于选中状态,然后在“属性”窗口中将“TextAlign”属性设置为“右”。在文本框内单击,以激活“报表格式”工具栏,然后单击“加粗”**按钮。
单击矩阵中的任意位置,以选择矩阵。单击右键,然后按名称选择矩阵(默认值为 matrix1)。矩阵报表项周围将显示一个轮廓。右击该轮廓,然后选择**“属性”。检查所打开的对话框的标题是否为“矩阵属性”**。
单击**“组”选项卡。在“列”部分中,单击“编辑”**。
在**“排序与分组”对话框中,单击“排序”**选项卡。
在“表达式”下的第一个框内单击,以激活文本框。从下拉列表中选择**“=Fields!Dept.Value”。这样可以确保按照部门名称对报表数据进行排序。单击“确定”**。
单击**“确定”关闭“矩阵属性”**对话框。
从**“网站数据源”窗口中,将“EmployeeID”字段拖动到矩阵第二列第二行的“数据”文本框上。右击此文本框,然后选择“表达式”**。
编辑默认的**“Sum”聚合函数并将它更改为“Count”。单击“确定”**。
单击**“确定”关闭“文本框属性”**对话框。
在**“文件”菜单上,选择“全部保存”**。
向应用程序添加 ReportViewer 控件
在**“解决方案资源管理器”中,右击“Default.aspx”,然后选择“视图设计器”**。
打开**“工具箱”窗口。在“数据”组中将“ReportViewer”**控件拖动到页面上。
如果尚未打开**“ReportViewer 任务”智能标记面板,请将其打开,方法是在网页上单击 ReportViewer 控件右上角的三角形。在“选择报表”**框中,选择 Report.rdlc 的完全限定文件名。
选择报表后,将自动创建报表中使用的数据源的实例。并生成代码以实例化每个 DataTable(及其 DataSet 容器)以及与报表中使用的每个数据源相对应的 ObjectDataSource 控件。此数据源控件自动进行配置。
注意 |
---|
若要了解为什么 ASP.NET 使用 ObjectDataSource 控件而不使用 SqlDataSource 控件(即使基础数据源可能是数据库或某些其他强类型化的数据存储),请参见为报表创建数据源。 |
编译和运行应用程序
按**“Ctrl+F5”可在不调试的情况下运行页面,按“F5”**则会在运行页面时进行调试。
在生成过程中,会编译报表并将发现的所有错误(例如报表中所用的表达式中的语法错误)都添加到**“任务列表”**中。
网页显示在浏览器中。ReportViewer 控件显示报表。可以使用工具栏浏览报表、缩放及导出到 Excel。
关闭浏览器。
另请参见
参考
Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing