在 URL 中传递报表参数

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

重要

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

如果未包含代理语法,则需要使用 rp: 为参数添加前缀。

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

重要

报表参数区分大小写。

注释

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

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

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

  
parameter=value  

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

http://myrshost/ReportServer?/AdventureWorks 2008R2/Employee_Sales_Summary_2008R2&ReportMonth=3&ReportYear=2008  

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

http://myspsite/subsite/_vti_bin/reportserver?http://myspsite/subsite/AdventureWorks 2008R2/Employee_Sales_Summary_2008R2.rdl&ReportMonth=3&ReportYear=2008  

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

  
parameter  
:isnull=true  
  

例如,

SalesOrderNumber:isnull=true  

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

注释

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

其他示例

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

  • “SQL Server 用户教育团队”的文件夹名称包括空格,因此“+”将替换每个空间。

  • “团队项目报告”的报表名称包括空格,因此“+”将替换每个空间。

  • 传递两个参数:“teamgrouping2”,值为“xgroup”;“teamgrouping1”,值为“ygroup”。

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 示例将传递具有值“7/1/2005”的 SellStartDate 的单个参数。

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

另请参阅

URL 访问 (SSRS)
URL 访问参数参考