SQL Server 2008 Reporting Services 动手实验
备注: 安装有 AdventureWorks2008 数据库的 Microsoft SQL Server 2008。必须先下载并安装 SQL Server 2008 示例和示例数据库,才能对其进行查看或使用。若要安装 SQL Server 的正式示例数据库,请访问 www.CodePlex/MSFTDBProdSample
动手实验1:创建基本表报表
按照本动手实验中的步骤来学习如何创建第一个报表。本动手实验将向您演示如何使用报表设计器来创建数据源连接,定义简单查询并生成包含数据的布局。
动手实验2:向报表添加参数
按照本动手实验中的步骤来学习添加控制报表外观和内容的参数。
动手实验3:创建基本矩阵报表
按照本动手实验中的步骤学习如何创建包含矩阵的报表。
动手实验4:向报表添加饼图
按照本动手实验中的步骤学习如何向报表添加饼图。
动手实验5:向报表添加条形图
按照本动手实验中的步骤学习如何向报表添加条形图。
动手实验6:向报表添加 KPI
按照本动手实验中的步骤学习如何向报表添加关键绩效指标 (KPI)。这包括图像或仪表数据区域。 
动手实验7: 使用report builder2.0创建报表
动手实验8(可选) : 使用VC#应用程序访问报表服务器
动手实验1:创建基本表报表 (共六个课练习)
1 课:创建报表服务器项目 (Reporting Services)
2 课:指定连接信息 (Reporting Services)
3 课:为表报表定义数据集 (Reporting Services)
4 课:向报表添加表 (Reporting Services)
5 课:设置报表格式 (Reporting Services)
6 课:添加分组和总计 (Reporting Services)
1 课:创建报表服务器项目 (Reporting Services)
创建报表服务器项目
1. 单击开始,依次指向程序 Microsoft SQL Server 2008,然后单击 Business Intelligence Development Studio
2. 文件菜单上,指向新建,再单击项目
3. 项目类型列表中,单击商业智能项目
4. 模板列表中,单击报表服务器项目
5. 名称中,键入 Tutorial
6. 单击确定以创建项目。
解决方案资源管理器中将显示 Tutorial 项目。
创建新的报表定义文件
1. 在解决方案资源管理器中,右键单击报表,指向添加,再单击新建项
注意:
如果解决方案资源管理器窗口不可见,请单击视图菜单中的解决方案资源管理器
2. 添加新项对话框的模板下,单击报表
3. 名称中,键入 Sales Orders.rdl,再单击添加
此时报表设计器将打开,并在设计视图中显示新的 .rdl 文件。
您已经成功创建了名为Tutorial”的报表项目,并向该报表项目添加了报表定义 (.rdl) 文件。接下来,您将指定要用于报表的数据源。
2 课:指定连接信息 (Reporting Services)
设置连接
1. 报表数据窗格中,单击新建,然后单击数据源
注意:
如果报表数据窗格不可见,请单击视图菜单上的报表数据
2. 名称中,键入 AdventureWorks
3. 确保已选中嵌入连接
4. 类型中,选择 Microsoft SQL Server
5. 连接字符串中,键入以下内容:
Data source=localhost; initial catalog=AdventureWorks2008
6. 该连接字符串假定 Business Intelligence Development Studio、报表服务器和 AdventureWorks2008 数据库都已安装在本地计算机中,并且您拥有登录 AdventureWorks2008 数据库的权限。
7. 单击确定。名为 AdventureWorks 的数据源即被添加到报表数据窗格中。
您已成功定义了到 AdventureWorks 示例数据库的连接
3 课:为表报表定义数据集 (Reporting Services)
定义数据源后,您需要定义数据集。在 Reporting Services 中,您在报表中使用的数据包含在数据集中。您将创建一个查询,用于从 AdventureWorks2008 数据库中检索销售订单信息。
为报表数据定义 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.SalesOrderDetail AS sd
      ON sd.SalesOrderID = soh.SalesOrderID
  INNER JOIN Production.Product AS 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. (可选)单击查询设计器按钮。查询将在基于文本的查询设计器中显示。通过单击编辑为文本,可以切换到图形查询设计器。通过单击查询设计器工具栏上的运行(!)按钮来查看查询结果集。
单击确定退出查询设计器。
6. 单击确定退出数据集属性对话框。
此时将在报表数据窗格中显示 AdventureWorksDataset 数据集字段。
4 课:向报表添加表 (Reporting Services)
向报表布局中添加表数据区域和字段
1. 工具箱中,单击,再单击设计图面。报表设计器将在设计图面中心绘制一个具有三列的数据区域。
注意:
工具箱可能显示为报表数据窗格左侧的一个选项卡。若要打开工具箱,请将指针移到工具箱选项卡上。如果工具箱不可见,请单击视图菜单上的工具箱
2. 报表数据窗格中,展开 AdventureWorksDataset 数据集以显示字段。
3. Date 字段从报表数据窗格拖到表的第一列中。
4. Order 字段从报表数据窗格拖到表的第二列中。
5. Product 字段从报表数据窗格拖到表的第三列中。
6. Qty 字段拖到第三列的右边缘,直到显示一个垂直光标且鼠标指针带有加号 [+] 为止。释放鼠标按钮后,将为 [Qty] 创建第四列。
7. 请以相同方式添加 LineTotal 字段,并创建第五列。
以下关系图显示已由下列字段填充的表数据区域:DateOrderProductQty Line Total
预览报表
单击预览选项卡。报表设计器将运行此报表,并将其显示在预览视图中。
下图显示了预览视图中的部分报表。
请注意,Line Total 列中货币的小数点后面有六个小数位,并且日期具有不必要的时间戳。此格式问题将在下一课中进行修复。
注意:
您可以在预览报表前后保存报表项目。在文件菜单上,单击全部保存
5 课:设置报表格式 (Reporting Services)
将设置列标题以及日期和货币值的格式。
设置日期格式
默认情况下,Date 字段显示日期和时间信息。您可以设置其格式,使其只显示日期。
设置日期字段格式
1. 单击设计选项卡。
2. 右键单击带 [Date] 字段表达式的单元,然后单击文本框属性
3. 单击数字,然后在类别字段中,选择日期
4. 类型框中,选择2000 -01 -31
5. 单击确定
设置货币格式
LineTotal 字段显示常规数字。请设置其格式,以使其显示货币形式的数字。
设置货币字段格式
1. 右键单击带有 [LineTotal] 字段表达式的单元,然后单击文本框属性
2. 单击数字,然后在类别字段中,选择货币
3. 如果区域设置为英语(美国)”,则默认设置应为:
小数位数:2
负数:($12345.00)
符号:$ 英语(美国)
4. 选择使用 1000 分隔符(,)
如果示例文本为 $12,345.00,则说明您的设置是正确的。
5. 单击确定
更改文本样式和列宽
还可以更改标题行的格式设置,以使其与报表中的数据行区分开来。最后,您将调整列的宽度。
设置标题行和表列的格式
1. 单击表,以便在此表的上方和旁边显示列控点和行控点。
沿此表的上方和一侧显示的灰条状物就是列控点和行控点。
sql sever 20082. 指向列控点之间的行,使光标变为双箭头。拖动列,调整到所需大小。
3. 选择包含列标题标签的行,从格式菜单中,指向字体,然后单击加粗
4. 若要预览报表,请单击预览选项卡。其外观应与下图相似:
6 课:添加分组和总计 (Reporting Services)
向报表中添加分组和总计以便组织和汇总数据。
在报表中对数据进行分组
1. 单击设计选项卡。
2. 报表数据窗格将 Date 字段拖到行组窗格,并将其放置到名为 Details 的行上面。
请注意,行控点中现在有一个方括号,用于显示组。表现在在垂直点线的两侧各有一个 Date 列。
3. 报表数据窗格将 Order 字段拖到行组窗格,并将其放置到 Date 下面和 Details 上面。
请注意,行控点中现在有两个方括号,用于显示两个组。表现在还包含两个 Order 列。