第 7 课:创建钻取报表

新建日期: 2006 年 7 月 17 日

使用参数的方式之一就是钻取到其他报表。在本课中,您将向 AdventureWorks 示例报表“Territory Sales Drilldown”添加参数,以按销售区域组筛选报表数据。为了为此参数提供可用值,您将创建 TerritoryGroup 数据集以从 AdventureWorks 数据库检索可用于销售区域组的非重复值。

在下一课中,您将使用此报表作为几种导航操作的目标。

打开“高级参数教程”报表服务器项目

  1. SQL Server Business Intelligence Development Studio 中,打开上一课中创建的“高级参数教程”报表服务器项目。

  2. 在解决方案资源管理器中,双击 Resellers Worldwide 报表。将在“布局”视图中打开此报表。

  3. 单击**“数据”**选项卡。

导入 AdventureWorks 示例报表 Territory Sales Drilldown

  1. 在解决方案资源管理器中,右键单击“报表”文件夹,选择**“添加”,然后单击“现有项”。将打开“添加现有项”**对话框。

    Aa337439.note(zh-cn,SQL.90).gif注意:
    “导入报表”命令将导入现有的 Microsoft Access 报表而不是现有的 Reporting Services 报表。
  2. 浏览到 AdventureWorks 示例报表文件夹。默认位置是 *<drive>:\*Program Files\Microsoft SQL Server\90\Samples\Reporting Services\Report Samples\AdventureWorks Sample Reports。双击“Territory Sales Drilldown.rdl”报表以将其添加到“高级参数教程”项目。

  3. 在解决方案资源管理器中,右键单击“Territory Sales Drilldown.rdl”并选择**“重命名”**。键入 Parameterized Territory Sales Drilldown.rdl。按 Enter 键。

  4. 右键单击 Parameterized Territory Sales Drilldown 报表。将在“布局”视图中打开此报表。

然后,您需要将此报表的数据源更改为使用第 1 课中创建的共享数据源。

将数据集绑定到不同的数据源

  1. 单击**“数据”**选项卡,切换到“数据”视图。您将收到以下错误:“无法与数据库建立连接。请设置并测试该连接字符串。”

    Parameterized Territory Sales Drilldown 报表使用名为“AdventureWorks”的数据源。需要将此数据源更改为共享数据源“Resellers”。

  2. 在**“数据集”下拉列表中,选择 TerritorySales 数据集,然后单击“编辑所选的数据集”**按钮。

  3. 从**“查询”选项卡的“数据源”**下拉列表中,选择 Resellers

  4. 单击**“确定”**。

  5. 单击**“运行”(!**) 以查看结果集。

    您将看到以下六列的数千行的值:Name、SalesPersonID、FirstName、LastName、SalesOrderNumber、TotalDue。

为了参数化此报表,您将为有效值创建新数据集。然后,您将创建新报表参数 SalesTerritoryGroup,并将其设置为从此数据集检索有效值。

为可用值创建数据集

  1. 在**“数据集”下拉列表中,单击“<新建数据集>”。将打开“数据集”**对话框。

  2. 在**“查询”选项卡的“名称”**文本框中,键入 ValidValuesforTerritoryGroup

  3. 确保**“数据源”**是 Resellers

  4. 确保**“命令类型”“Text”**。

  5. 将下列查询粘贴到查询窗格中。

    SELECT DISTINCT [Group] AS SalesTerritoryList
       FROM [AdventureWorks].[Sales].[SalesTerritory]
    

    AdventureWorks 数据库中的表 Sales.SalesTerritory 的列 Group 包含区域值。

  6. 单击**“运行”(!**) 以查看结果集。

    将显示包含以下三行的列 SalesTerritoryList:Europe、North America 和 Pacific。这些行将是下一步中创建的多值参数 SalesTerritoryGroup 的三个可用值。**

添加新的多值报表参数

  1. 单击**“布局”**选项卡。

  2. 从**“报表”菜单中,选择“报表参数”。将打开“报表参数”**对话框。

  3. 单击**“添加”**。将创建具有默认值的新报表参数。

  4. 在“属性”区域的**“名称”**文本框中,键入 SalesTerritoryGroup。请确保数据类型为 String

  5. 选择**“多值”**选项。

  6. 在**“提示”**中,键入“销售区域组:”。

  7. 清除**“允许空白值”**选项。

  8. 在**“可用值”区域中,单击“来自查询”**。

  9. 从**“数据集”**下拉列表中,选择 TerritoryGroup。

  10. 从**“值字段”**下拉列表中,选择 SalesTerritory。

  11. 从**“标签字段”**下拉列表中,选择 SalesTerritory。

  12. 在**“默认值”区域中,单击“来自查询”**。

  13. 从**“数据集”**下拉列表中,选择 TerritoryGroup。

  14. 从**“值字段”**下拉列表中,选择 SalesTerritory。

    这样,SalesTerritoryGroup 的默认值将设置为在数据集 ValidValuesforTerritoryGroup 中检索到的所有值。

  15. 单击**“确定”**。

您已定义了报表参数及其可用值集。在下一步中,您将把 TerritorySales 数据集查询修改为包含您刚刚用来创建有效值集的销售区域组的列。然后,您将修改此查询以便将结果集限制为 SalesTerritoryGroup 的所选参数值的数据。

将报表参数绑定到数据集查询

  1. 单击**“数据”**选项卡。

  2. 从**“数据集”**下拉列表中,选择 TerritorySales。查询窗格中将显示 TerritorySales 查询。

  3. 按照对有效值查询的操作,通过添加销售区域组修改现有查询。添加限制子句 HAVING (ST.[Group] IN (@SalesTerritoryGroup)) 以将结果限制为仅返回所选销售区域的数据。

    用以下内容替换现有查询:

    SELECT ST.[Group] AS SalesTerritory, ST.Name, SP.SalesPersonID, 
      C.FirstName, C.LastName, SOH.SalesOrderNumber, SOH.TotalDue 
    FROM  Sales.SalesTerritory ST INNER JOIN
     Sales.SalesPerson SP ON ST.TerritoryID = SP.TerritoryID INNER JOIN
     HumanResources.Employee E ON SP.SalesPersonID = 
         E.EmployeeID INNER JOIN
     Person.Contact C ON E.ContactID = C.ContactID INNER JOIN
     Sales.SalesOrderHeader SOH ON SP.SalesPersonID = SOH.SalesPersonID
    GROUP BY ST.[Group],ST.Name, SP.SalesPersonID, C.FirstName, 
        C.LastName, SOH.SalesOrderNumber, SOH.TotalDue
    HAVING (ST.[Group] IN (@SalesTerritoryGroup))
    ORDER BY ST.Name
    
  4. (可选)确保查询参数已绑定到报表参数。单击**“编辑所选的数据集”按钮,再单击“参数”**选项卡。应将名为 @SalesTerritoryGroup 的参数设置为表达式 =Parameters!SalesTerritoryGroup.Value

  5. 单击**“运行”(!) 以查看结果集。将显示“定义查询参数”**对话框。键入 Europe

  6. 将显示仅包含 Europe 的值的结果集。

    Aa337439.note(zh-cn,SQL.90).gif注意:
    查询设计器不支持测试多值参数。

Parameterized Territory Sales Drilldown 报表的 SalesOrderNumber 文本框中定义有预先存在的超链接操作,该操作指向相同报表文件夹中的钻取报表。在下一步中,您将把此超链接更改为使用默认示例文件夹。

将“销售订单号”钻取指向示例报表文件夹

  1. 单击**“布局”**选项卡。

  2. 右键单击 SalesOrderNumber 文本框,选择**“属性”。将打开“文本框属性”**对话框。

  3. 单击**“导航”**选项卡。

  4. 对于**“超链接操作”**区域中的“跳至报表”选项,用以下的完全限定报表地址替换报表名称:

    /AdventureWorks Sample Reports/Sales Order Detail
    
  5. 单击**“确定”**。

  6. 在**“文件”菜单上,单击“全部保存”**。

修改报表说明

  1. 从**“报表”菜单中,选择“报表属性”。将打开“报表属性”**对话框。

  2. 将**“说明”**文本框中的文本替换为“按带有区域参数的区域排序的 Adventure Works 销售”

  3. 单击**“确定”**。

    Aa337439.note(zh-cn,SQL.90).gif注意:
    将报表部署到报表服务器时,对报表设计器中的说明所做的更改不会覆盖报表服务器上发布的说明。若要替换发布的说明,请使用报表管理器删除此说明,然后从报表设计器中重新部署报表。若要在报表管理器中删除说明,请浏览到报表,然后单击“属性”选项卡。突出显示“说明”文本,然后将其删除。单击“应用”

后续步骤

您已成功将超链接添加到了报表项文本框。在下一课中,您将基于发布的 Resellers Worldwide 创建链接报表,从而为目标用户提供预设了报表参数值的报表。请参阅第 8 课:添加具有自定义参数值的链接报表

请参阅

其他资源

在 Reporting Services 中使用参数
使用参数连接到其他报表

帮助和信息

获取 SQL Server 2005 帮助