TL;DR:如何通过URL链接到SSRS (2016)报表,在查询字符串中包含一个参数,并保留(显示)完整的菜单栏(顶部的"SSRS chrome“,其中有收藏夹、浏览、设置、面包屑导航等等)。
原因:我正在逐步淘汰一个旧的2008R2实例,在旧的RDL上放置一个可点击的链接到2016年实例中类似报告的新版本。当用户选择/填充了一个参数值时,我显然希望在可能的情况下将其向前传递给新的报表。我跟踪了dox并构建了这样的URL:
http://ssrsInstance/ReportServer/Pages/ReportViewer.aspx?%2fFolder+Name%2fOrder+Line+Details&rs%3aCommand=Render&OrderNo=123456
或者,非编码更易读的版本:
http://ssrsInstance/ReportServer/Pages/ReportViewer.aspx?/Folder Name/Order Line Details&rs:Command=Render&OrderNo=123456
这是因为它显示了填充了参数值的报表,但它没有显示顶级SSRS菜单部分,即标签(徽标/标题)、右上角的Settings/Download/Help按钮以及左上方的收藏夹和浏览链接。我想要这些东西出现,因为它传达给他们,他们在新的报告系统,他们可以浏览和找到其他报告。
我还尝试过什么:只使用报表的“标准”URL (比如从新实例中的菜单浏览到它),然后将参数追加到末尾,如下所示:
http://ssrsInstance/reports/report/Folder%20Name/Order%20Line%20Details&OrderNo=123456
或者,对于非编码版本:
http://ssrsInstance/reports/report/Folder Name/Order Line Details&OrderNo=123456
这会产生“无效项路径”错误:
The path of the item '/Folder Name/Order Line Details&OrderNo=123456' is not valid. The full path must be less than 260 characters long; other restrictions apply. If the report server is in native mode, the path must start with slash. (rsInvalidItemPath)
显然,另一个(不太好的)选项是简单地使用没有参数的URL,但这迫使用户不得不重新做工作(特别是在更复杂的参数集和多值params的情况下),这会很糟糕。
希望有办法!谢谢大家。:)
发布于 2020-03-23 20:04:55
#sqlcommunity的圣人(即@JeffRush)告诉我,这是不可能的。它和两个不同的界面有关--
"..that只在您访问报表接口时才存在。URL访问会击中ReportServer 接口。“(强调地雷)
希望这对未来的读者有帮助。
发布于 2022-11-30 07:47:47
有一种解决办法。您可以制作链接报表,单击报表右上角的三个点,然后选择“管理”,然后单击“创建链接报表”。您可以指定链接报表的参数,甚至可以隐藏它。然后,您可以使用url以表单http://<servername>/Reports/report/<foldername>/<linkedreportname>链接报表,让它负责传递参数,同时保留完整的顶部菜单。
https://dba.stackexchange.com/questions/262543
复制相似问题