第 2 课:修改报表数据源属性

在此 Reporting Services 教程课程中,你会使用 Web 门户来选择要传递给收件人的报表。 你定义的数据驱动订阅将分发在教程创建基本表报告(SSRS 教程)中创建的“销售订单”报表。 在接下来的步骤中,修改此报表使用的数据源连接信息,以获取数据。 只有使用 已存储凭据 访问报表数据源的报表才能通过数据驱动订阅进行分发。 已存储凭据是处理无人参与的报表所必需的。

你还将修改数据集和报表以便使用参数来筛选 [Order] 上的报表,这样,订阅可为特定的顺序和呈现格式输出不同的报表实例。

修改数据源以使用存储的凭据

  1. 使用管理员权限浏览到 Reporting Services Web 门户,例如,右键单击 Internet Explorer 的图标,然后选择“以管理员身份运行”

  2. 浏览到 Web 门户 URL。 例如:
    https://<server name>/reports
    https://localhost/reports注意:Web 门户 URL 为“Reports”而非“Reportserver”的报表服务器 URL。

  3. 浏览到包含 Sales Orders 报表的文件夹,在该报表的上下文菜单中,选择“管理”

    Screenshot of the context menu of Sales Orders.

  4. 在左侧窗格中选择数据源

  5. 验证“连接类型”是否为“Microsoft SQL Server” 。

  6. 验证是否连接字符串如下所示并且它假定示例数据库位于本地数据库服务器上:

    Data source=localhost; initial catalog=AdventureWorks2022  
    
  7. 选择“使用以下凭据”

  8. 在“凭据类型”中,选择“Windows 用户名和密码”

  9. 输入用户名(使用 domain\user 格式)和密码。 如果你没有访问 AdventureWorks2022 数据库的权限,请指定具有此权限的登录名。

  10. 若要验证是否能连接到数据源,请选择“测试连接”

  11. 选择“保存”。

  12. 选择“取消” 。

  13. 查看报表以验证报表是否以指定的凭据运行。

修改 AdventureWorksDataset

在以下步骤中,你修改数据集以使用参数基于订单号筛选数据集。

  1. 在 SQL Server Data Tools 中打开“销售订单”报表。

  2. 右键单击数据集 AdventureWorksDataset,然后选择“数据集属性”

    Screenshot of the context menu for AdventureWorksDataset highlighting the Dataset Properties option.

  3. 将语句 WHERE (UPPER(SalesOrderNumber) =UPPER(@OrderNumber) or @OrderNumber IS NULL) 添加到 Group By 语句之前。 完整查询语法如下所示:

    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 AS 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  
    
    WHERE (UPPER(SalesOrderNumber) =UPPER(@OrderNumber) or  @OrderNumber IS NULL)  
    
    GROUP BY ppc.Name, soh.OrderDate, soh.SalesOrderNumber, pps.Name, pp.Name, soh.SalesPersonID  
    HAVING (ppc.Name = 'Clothing')  
    
  4. 选择确定
    在以下步骤中,向报表添加一个参数。 该报表参数会馈送数据集参数。

添加报表参数并重新发布报表

  1. 在“报表数据”窗格中,展开参数文件夹,然后双击“Ordernumber”参数。 它在上一步中向数据集添加参数时自动创建。 选择“新建”,然后选择“参数”

    Screenshot of the Report Data pane highlighting the Ordernumber parameter.

  2. 验证“名称”是否为 OrderNumber

  3. 验证“提示”是否为 OrderNumber

  4. 选择“允许空值("")”。

  5. 选择 “允许 Null 值”

  6. 选择“确定”

  7. 选择“预览”以运行报表。 请注意报表顶部的参数输入框。 可以:

    • 在不使用参数的情况下选择“查看报表”以便看到完整的报表。

    • 取消选择“Null”选项并输入订单号,例如 so71949,然后选择“查看报表”以便只在报表中查看这一个订单。

    Screenshot of the preview tab and the View Report button highlighted.

重新部署报表

  1. 重新部署报表,以便下一课程中的订阅配置可利用你在本课程中进行的更改。 有关在表教程中使用的项目属性的详细信息,请参阅第 6 课:添加分组和总计 (Reporting Services) 中的“将报表发布到 Report Server(可选)”部分。

  2. 在工具栏上,选择“生成”,然后选择“部署教程”

下一步

  • 你已成功地将报表配置为使用已存储凭据获取数据,并且可以使用参数筛选数据。
  • 在下一课中,你会使用 Web 门户“数据驱动订阅”页来配置订阅。 请参阅第 3 课:定义数据驱动订阅