首页 > 解决方案 > 通过 URL 将参数传递给 SSPRS 报告不起作用

问题描述

我正在尝试访问 SSPRS 报告,该报告可以通过将 URL 中的参数添加为 ¶m=value 来选择年份和月份,但我总是得到默认值。

这是参数,我知道我在 URL 中发送了正确的值。

参数

这是我可以选择年份和月份的报告面板,我试图通过在 URL 中传递这些参数来获取我需要的特定报告。

在此处输入图像描述

我可能做错了什么?

谢谢大家。

标签: sql-servervisual-studioparameter-passingssrs-2008

解决方案


有几种方法会出错,我猜你的问题是你的日期参数的 URL 编码,但我也会给你其他的东西。这是一个带有 3 个参数的有效 URL:日期、字符串和整数。

https://db01.MyCompany.com/ReportServer_Prod?/Reports/R440_OutstandingRecp¶mDateEnd=12%2f31%2f2015¶mPropLiab=Property¶mRepPeriod=1

此 URL 的关键部分:“ https://db01.MyCompany.com/ReportServer_Prod?/ ” - db01.MyCompany.com 是我们的数据库 VM,我在其上使用 SQL 的“Prod”(生产)实例. 注意:检查您的 Reporting Services 配置应用程序并查看“Web 服务 URL”以获取安装中的“ReportServer_Prod”。

“?/Reports/”是虚拟目录的路径,注意这与浏览器通常使用的路径不同。如果我只是从 Reporting Services 界面查看它,通常我的路径将是“ReportServer_Prod/Pages/Report.aspx?ItemPath=%2fReports%2fR440_OutstandingRecp”。

参数由“&”分隔,它是“ParamName”“=”“ParamValue”,所以“¶mPropLiab=Property¶mRepPeriod=1”分别是字符串和整数参数。

最后,如有必要,参数值会进行 URL 编码。大多数情况下它不会出现,但对于日期和一些字符串,它变得很有必要。我们不能发送像“12/31/2015”这样的东西,因为它看起来像是路径的一部分,我们需要一个像“12%2f31%2f2015”这样的 URL 编码字符串

希望其中一个(或多个)是您所需要的,如果仍然无法正常工作,或者您需要更多解释这些部件为何如此,请在评论中回复。

编辑:还有一件事,如果一个参数有一个“显示”和一个“值”(即在下拉列表中),你必须传递值,而不是显示。

编辑:我不能让评论停止隐藏我的网址,所以我会把它放在这里

尝试了什么 https://slo2000/Reports_TECOVA?/Reports/TEXO%20CVA%20Reports%2fTEXO_London_B_CVA_Report&ReportMonth=January&ReportYear=2020

https://slo2000/Reports_TECOVA?/Reports/TEXO%20CVA%20Reports/TEXO_London_B_CVA_Report&ReportMonth=January&ReportYear=2020

https://slo2000/ReportServer_TECOVA?/Reports/TEXO+CVA+Reports/TEXO_London_B_CVA_Report&ReportMonth=January&ReportYear=2020

什么工作(来自@Nacho 的评论,带到这里是为了可见性)

http://slo2000/ReportServer_TECOVA/Pages/ReportViewer.aspx?%2TEXO+CVA+Reports%2fTEXO_London_B_CVA_Report&rs:Command=Render&ReportMonth=January&ReportYear=2020


推荐阅读