第 5 课:添加要传递给钻取报表的参数 (Report Builder 2.0)

钻取报表是通过单击当前报表中的链接对其进行访问的一种报表。单击具有钻取操作的文本框,即可打开钻取报表。如果钻取报表具有参数,则必须为每个报表参数传递参数值。

在本课中,您将设计一种新的报表,这种报表接受销售订单参数,并显示销售订单中每个行项的产品名称、数量和总计。相应数据来自 AdventureWorks2008 示例数据库。然后,将通过添加销售订单的钻取链接来修改在教程:创建基本表报表 (Report Builder 2.0) 或其后续课程之一中创建的报表。当用户单击主报表中的该链接后,销售订单详细信息报表随即打开并显示有关销售的每个行项。

创建新的报表定义文件并将其保存到报表服务器上

  1. 单击**“开始”,依次指向“程序”**、Microsoft SQL Server 2008 Report Builder,再单击 Report Builder 2.0

  2. 在设计图面上,单击**“单击此处添加标题”**,然后键入 Sales Order Details。

  3. 从**“报表生成器”按钮,单击“另存为”**。

  4. 单击**“最近使用的站点和服务器”**。

  5. 单击您拥有保存报表权限的报表服务器的名称。

  6. 在**“名称”**中,键入 Sales Order Details。

  7. 单击**“保存”**。

    这样,便保存了一个新的报表,该报表将成为主报表中一个链接的目标。

启动表向导并添加连接

  1. 在设计图面的**“单击可添加数据”下,单击“表或矩阵”**。

    将打开新建表/矩阵向导,并会显示**“选择数据源的连接”**页。

  2. 选择或浏览至在教程:创建基本表报表 (Report Builder 2.0) 中为 AdventureWorks2008 示例数据库创建的数据源。 

  3. 单击**“下一步”**。

为报表数据定义 Transact-SQL 查询

  1. 在**“设计查询”页中,单击“编辑为文本”**。将打开基于文本的查询设计器。

  2. 将以下 Transact-SQL 查询粘贴到“查询”窗格中:

    SELECT P.Name AS Product, SD.OrderQty AS Quantity, SD.LineTotal 
    FROM Sales.SalesOrderDetail AS SD 
       INNER JOIN Production.Product AS P 
       ON SD.ProductID = P.ProductID 
       INNER JOIN Sales.SalesOrderHeader AS SH 
       ON SD.SalesOrderID = SH.SalesOrderID
    WHERE (SH.SalesOrderNumber = (@SalesOrder) )
    ORDER BY SD.SalesOrderDetailID
    
  3. 单击“确定”。

    请注意,若要创建字段集合,您无需使用查询参数值在查询设计器中运行查询。如果要运行查询,可以使用以下销售订单号:SO43661。

  4. 单击**“下一步”**。

    这样,便为报表定义添加了一个数据集。

将数据组织到组中

  1. 在**“排列字段”页上,将 Product 拖到“行组”**中。

  2. 将 Quantity 拖到“值”中。

  3. 将 LineTotal 拖到“值”中并将其放在 Quantity 下面。

  4. 单击**“下一步”**。

    这样,便添加了要在表中显示的一个行组和两个数据值。

添加小计和总计并选择样式

  1. 在**“选择布局”页的“选项”下,验证是否选择了“显示小计和总计”**。

  2. 清除**“展开/折叠组”**选项。

    “预览”窗格将显示一个 3 列 3 行的表。

  3. 单击**“下一步”。在“选择样式”**页中,选择一个样式。

  4. 单击**“完成”**。

    表将添加到设计图面中。此表有 3 个列和 3 个行。“行组”窗格显示一个组 Product,并且不会显示详细信息数据。

  5. 单击**“运行”**以预览报表。

设置表的格式

  1. 切换到“设计”视图。

  2. 单击第二行中的单元,并向下拖动以选择包含 [Sum(LineTotal)] 的两个单元。

  3. 在**“主文件夹”选项卡上的“数字”组中,单击“货币”**按钮。

    这两个单元中的数字便会设置为货币格式。

  4. 在**“报表生成器”按钮上,单击“保存”**以将此报表保存到报表服务器上。

    然后,打开作为主报表的报表,并添加钻取操作以指定此报表。

向报表添加报表钻取操作

  1. 在**“报表生成器”按钮上,单击“打开”**。

  2. 导航到在之前课程中创建的 Sales Order 报表,然后单击**“打开”**。

  3. 在 SalesOrderNumber 列中,右键单击包含 [SalesOrderNumber] 的文本框,然后单击**“文本框属性”**。

  4. 单击**“操作”**。

  5. 在**“启用为超链接”中,选择“转到报表”**。

    此时将在对话框中显示其他区域。

  6. 在**“指定报表”中,单击“浏览”**。

  7. 在**“最近使用的站点和服务器”中,浏览到在之前步骤中创建的 Sales Order Detail 报表,然后单击“打开”**。

  8. 在**“使用这些参数运行报表”中,单击“添加”**。

    此时将向网格添加一个新行。

  9. 在**“名称”**的下拉列表中,选择 SalesOrder。

  10. 在**“值”**的下拉列表中,选择 [SalesOrderNumber]。

    这会将主报表的值绑定到目标报表需要的参数。

    下一步将更改钻取链接的文本样式和颜色。

  11. 单击**“字体”**。

  12. 在**“效果”的下拉列表中,选择“下划线”**。

  13. 在**“颜色”**的下拉列表中,单击“蓝色”。

  14. 单击“确定”。

    添加的文本框现在具有带下划线的文本,并且将按照您选择的颜色显示。这种直观的表示方式有助于报表读者了解存在指向另一个报表的活动链接。

预览报表

  1. 单击**“运行”**以预览报表。Sales Orders 报表显示按日期分组的销售订单。SalesOrderNumber 列显示表示钻取链接的销售订单号。

  2. 单击某个销售订单号。

    此时将运行钻取链接指定的报表,并显示单击的销售订单号的订单详细信息。

    注意注意

    若要返回到主报表,请使用报表查看器工具栏上的返回箭头。

后续步骤

这样,您就成功完成对“向报表添加参数”教程的学习。若要了解更多报表方法,请参阅教程 (Report Builder 2.0)