A.创建报表服务器项目
1. 单击“开始”,依次指向“程序”和 Microsoft SQL Server 2008,然后单击 Business Intelligence Development Studio。
2. 在“文件”菜单上,指向“新建”,再单击“项目”。
3. 在“项目类型”列表中,单击“商业智能项目”。
4. 在“模板”列表中,单击“报表服务器项目”。
5. 在“名称”中,键入 Tutorial。
6. 单击“确定”以创建项目。
解决方案资源管理器中将显示 Tutorial 项目。
B.创建新的报表定义文件
1. 在解决方案资源管理器中,右键单击“报表”,指向“添加”,再单击“新建项”。
注意: |
如果“解决方案资源管理器”窗口不可见,请单击“视图”菜单中的“解决方案资源管理器”。 |
2. 在“添加新项”对话框的“模板”下,单击“报表”。
3. 在“名称”中,键入 Sales Orders.rdl,再单击“添加”。
此时报表设计器将打开,并在“设计”视图中显示新的 .rdl 文件。
报表设计器是在 Business Intelligence Development Studio 中运行的 Reporting Services 组件。它包含两个视图:“设计”和“预览”。单击各个选项卡可更改视图。
在“报表数据”窗格中定义数据。在“设计”视图中定义报表布局。可以在“预览”视图中运行报表并查看其外观。
向“教程”项目添加报表之后,您需要定义“数据源”,它是报表从关系数据库、多维数据库或其他资源访问数据所使用的一组连接信息。
C.设置连接
在本课中,您将使用 AdventureWorks2008 示例数据库作为数据源。本教程假定此数据库位于本地计算机上安装的默认 SQL Server 数据库引擎实例中。
1. 在“报表数据”窗格中,单击“新建”,然后单击“数据源”。
2.
注意: |
如果“报表数据”窗格不可见,请单击“视图”菜单上的“报表数据”。 |
3. 在“名称”中,键入 AdventureWorks。
4. 确保已选中“嵌入连接”。
5. 在“类型”中,选择 Microsoft SQL Server。
6. 在“连接字符串”中,键入以下内容:
| 复制代码 |
Data source=localhost; initial catalog=AdventureWorks2008 |
7. 该连接字符串假定 Business Intelligence Development Studio、报表服务器和 AdventureWorks2008 数据库都已安装在本地计算机中,并且您拥有登录 AdventureWorks2008 数据库的权限。
注意: |
如果使用的是带高级服务的 SQL Server Express 或命名实例,则连接字符串必须包括实例信息: Data source=localhost\SQLEXPRESS; initial catalog=AdventureWorks2008 有关连接字符串的详细信息,请参阅连接数据源 (Reporting Services)和“数据源属性”对话框 ->“常规”。 |
8. 单击“确定”。名为 AdventureWorks 的数据源即被添加到“报表数据”窗格中。
D.为报表数据定义 Transact-SQL 查询
1. 在“报表数据”窗格中,单击“新建”,然后单击“数据集”。此时将打开“数据集属性”对话框。
2. 在“名称”框中,键入 AdventureWorksDataset。
3. 确保数据源名称 AdventureWorks 位于“数据源”文本框中,并确保“查询类型”为“文本”。
4. 将以下 Transact-SQL 查询键入(或复制并粘贴)到“查询”框中。
| 复制代码 |
SELECT soh.OrderDate AS [Date], soh.SalesOrderNumber AS [Order], pps.Name AS Subcat, pp.Name as Product, SUM(sd.OrderQty) AS Qty, SUM(sd.LineTotal) AS LineTotal FROM Sales.SalesPerson sp INNER JOIN Sales.SalesOrderHeader AS soh ON sp.BusinessEntityID = soh.SalesPersonID INNER JOIN Sales.SalesOrderDetailAS sd ON sd.SalesOrderID = soh.SalesOrderID INNER JOIN Production.ProductAS pp ON sd.ProductID = pp.ProductID INNER JOIN Production.ProductSubcategory AS pps ON pp.ProductSubcategoryID = pps.ProductSubcategoryID INNER JOIN Production.ProductCategory AS ppc ON ppc.ProductCategoryID = pps.ProductCategoryID GROUP BY ppc.Name, soh.OrderDate, soh.SalesOrderNumber, pps.Name, pp.Name, soh.SalesPersonID HAVING ppc.Name = 'Clothing' |
5. (可选)单击“查询设计器”按钮。查询将在基于文本的查询设计器中显示。通过单击“编辑为文本”,可以切换到图形查询设计器。通过单击查询设计器工具栏上的“运行”(!)按钮来查看查询结果集。
您将看到来自 AdventureWorks2008 数据库中四个不同表的六个字段的数据。查询利用别名等 Transact-SQL 功能。例如,SalesOrderHeader 表称为 soh。
E.向报表布局中添加表数据区域和字段
1. 在“工具箱”中,单击“表”,再单击设计图面。报表设计器将在设计图面中心绘制一个具有三列的数据区域。
注意: |
“工具箱”可能显示为“报表数据”窗格左侧的一个选项卡。若要打开“工具箱”,请将指针移到“工具箱”选项卡上。如果“工具箱”不可见,请单击“视图”菜单上的“工具箱”。 |
2. 在“报表数据”窗格中,展开 AdventureWorksDataset 数据集以显示字段。
3. 将 Date 字段从“报表数据”窗格拖到表的第一列中。
将字段拖到第一列中时,会发生两件事。首先,数据单元将在方括号中显示字段名称,也称为“字段表达式”:[Date]
。其次,列标题值自动添加到紧邻字段表达式上面的标题行。默认情况下,该列是字段的名称。您可以选中标题行文本,然后键入一个新名称。
4. 将 Order 字段从“报表数据”窗格拖到表的第二列中。
5. 将 Product 字段从“报表数据”窗格拖到表的第三列中。
6. 将 Qty 字段拖到第三列的右边缘,直到显示一个垂直光标且鼠标指针带有加号 [+] 为止。释放鼠标按钮后,将为 [Qty]
创建第四列。
7. 请以相同方式添加 LineTotal 字段,并创建第五列。
以下关系图显示已由下列字段填充的表数据区域:Date、Order、Product、Qty 和 Line Total。
预览报表
通过预览报表,您可以不必先将报表发布到报表服务器,即可轻松查看呈现的报表。您可能希望在设计时频繁预览报表。
F.预览报表
- 单击“预览”选项卡。报表设计器将运行此报表,并将其显示在“预览”视图中。
下图显示了“预览”视图中的部分报表。
请注意,Line Total 列中货币的小数点后面有六个小数位,并且日期具有不必要的时间戳。此格式问题将在下一课中进行修复。
注意: |
您可以在预览报表前后保存报表项目。在“文件”菜单上,单击“全部保存”。 |