本演练演示如何为 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”。
-
在“查看”菜单上,选择“设计器”。
现在您就可以修改网站的默认页。
-
在“网站”菜单上选择“添加新项”。
-
在“添加新项”对话框中,单击“数据集”。 单击“添加”。 在系统提示是否要将该项添加到“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”。 单击“确定”。
-
单击“确定”关闭“文本框属性”对话框。
-
在“文件”菜单上,选择“全部保存”。
-
在“解决方案资源管理器”中,右击“Default.aspx”,然后选择“视图设计器”。
-
打开“工具箱”窗口。 在“数据”组中将“ReportViewer”控件拖动到页面上。
-
如果尚未打开“ReportViewer 任务”智能标记面板,请将其打开,方法是在网页上单击 ReportViewer 控件右上角的三角形。在“选择报表”框中,选择 Report.rdlc 的完全限定文件名。
选择报表后,将自动创建报表中使用的数据源的实例。 并生成代码以实例化每个 DataTable(及其 DataSet 容器)以及与报表中使用的每个数据源相对应的 ObjectDataSource 控件。 此数据源控件自动进行配置。
注意 |
---|
若要了解为什么 ASP.NET 使用 ObjectDataSource 控件而不使用 SqlDataSource 控件(即使基础数据源可能是数据库或某些其他强类型化的数据存储),请参见为报表创建数据源。 |