在 URL 内传递报表参数

您可以通过在报表 URL 中包含报表参数,将它们传递到报表。 这些 URL 参数不带前缀,因为它们被直接传递到报表处理引擎。

注意

自 SQL Server 2016 之后,不再提供 Reporting Services 与 SharePoint 的集成这一功能。

重要

非常重要的一点是,URL 包括用于通过 SharePoint 和 _vti_bin HTTP 代理路由请求的 Reporting Services 代理语法。 该代理会向 HTTP 请求中添加某一上下文,该上下文是确保为 SharePoint 模式报表服务器正确执行报表所需要的。

如果不包含代理语法,则需要给参数加上前缀 rp:。

所有查询参数都可具有对应的报表参数。 通过传递相应报表参数将查询参数传递给报表。 有关详细信息,请参阅在关系查询设计器中生成查询(报表生成器和 SSRS)

重要

报表参数区分大小写。

注意

报表参数区分大小写并使用以下特殊字符:

  • URL 字符串中的任何空格字符将根据 URL 编码标准被字符“%20”替换。
  • URL 的参数部分中的空格字符将被加号字符 (+) 替换。
  • 字符串任何部分中的分号将被字符“%3A”替换。
  • 浏览器应自动执行正确的 URL 编码。 您不必手动对任何字符进行编码。

若要设置 URL 内的报表参数,请使用以下语法:

  
parameter=value  

例如,若要指定在报表中定义的两个参数“ReportMonth”和“ReportYear”,请将以下 URL 用于本机模式报表服务器:

https://myrshost/ReportServer?/AdventureWorks2022/Employee_Sales_Summary_2022&ReportMonth=3&ReportYear=2008  

例如,若要指定在报表中定义的两个相同参数,请将以下 URL 用于 SharePoint 集成模式的报表服务器。 注意 /_vti_bin

https://myspsite/subsite/_vti_bin/reportserver?https://myspsite/subsite/AdventureWorks2022/Employee_Sales_Summary_2022.rdl&ReportMonth=3&ReportYear=2008  

若要为参数传递 Null 值,请使用以下语法:

  
parameter  
:isnull=true  
  

例如,

SalesOrderNumber:isnull=true  

要传递 Boolean 值,请使用 0 表示 False,使用 1 表示 True。 要传递 Float 值,请包含服务器区域设置的小数分隔符。

备注

如果报表包含的某个报表参数具有默认值,并且 Prompt 属性的值为 false (即,在报表管理器中未选择 Prompt User 属性),则无法在 URL 中为该报表参数传递值。 这向管理员提供了一个选项,以防止最终用户添加或修改某些报表参数的值。

更多示例

以下 URL 示例包含空格和多个参数

  • 文件夹名称“SQL Server User Education Team”包含空格,因此“+”将替换每个空格。

  • 报表名称“team project report”包含空格,因此“+”将替换每个空格。

  • 传递值分别为 xgroupygroup 的两个参数“teamgrouping2”和“teamgrouping1”。

https://myserver/Reportserver?/SQL+Server+User+Education+Team/_ContentTeams/folder123/team+project+report&teamgrouping2=xgroup&teamgrouping1=ygroup  

以下 URL 示例包含一个多值参数“OrderID”。 多值参数的格式是每个值都有重复的参数名称。

https://myserver/Reportserver?/SQL+Server+User+Education+Team/_ContentTeams/folder123/team+project+report&teamgrouping2=xgroup&teamgrouping1=ygroup&OrderID=747&OrderID=787&OrderID=12  

以下 URL 示例为本机模式报表服务器传递单个参数 SellStartDate,其值为“7/1/2005”。

https://myserver/ReportServer/Pages/ReportViewer.aspx?%2fProduct_and_Sales_Report_AdventureWorks&SellStartDate=7/1/2005