通过URL参数传递到SQL Server报告服务通过URL参数传递到SQL Server报告服务(P

2019-05-16 14:57发布

我试图通过URL来SSRS传递一个参数,它似乎没有工作!

我试图通过将被传递给数据库和查询使用的URL传递用户ID(字符串)。

基地网址: HTTP://blah/Reports/Pages/Report.aspx ItemPath = MyReport

试过,但它不工作: HTTP://blah/Reports/Pages/Report.aspx ItemPath = MyReport和用户ID =弗雷德

有任何想法吗

Answer 1:

以及什么西拉说,尝试是这样的:

http://<server>/ReportServer/Pages/ReportViewer.aspx?%2f<path>%2f<ReportName>&rs:Command=Render&UserID='fred'

请注意,如果你是在一个单一的文件夹的路径只会工作。 当我不得不这样做,我只是浏览使用的reportserver路径的报告(“报告”是在报表管理器),然后复制网址,然后添加&<ParameterName>=<value>到最后。



Answer 2:

我有同样的问题多了,虽然这线程是老了,但它仍然是一个很好的,所以在摘要SSRS 2008R2我发现...

情况

  1. 你想用一个数值从URL查找数据
  2. 要在报告中显示从URL参数
  3. 你想从一个报表参数传递到另一个报告

操作

如果适用,一定要更换报表/页/ Report.aspx?ItemPath =的ReportServer? 。 换句话说,取而代之的是:

http://server/Reports/Pages/Report.aspx?ItemPath=/ReportFolder/ReportSubfolder/ReportName

使用此语法:

http://server/ReportServer?/ReportFolder/ReportSubfolder/ReportName

添加参数(S)报告和隐藏设置(或可见如果允许用户动作,不过请注意,虽然报告的参数也会发生变化,该URL 不会改变根据最新的条目)。

附加参数与&参数名称=值到URL

参数可以通过@parameterName引用或显示在报告中,他们是否在报告中还是在URL正在设置

要隐藏其中显示参数工具栏上,添加&RC:工具栏=假到URL( 参考 )

把所有的一起,你可以用内含价值运行一个URL,或称这种从一个报告的作用,并通过另一份报告如下:

http://server.domain.com/ReportServer?/ReportFolder1/ReportSubfolder1/ReportName&UserID=ABC123&rc:Toolbar=false

在报告数据集属性查询:从视图中选择的东西WHERE USER = @UserID

在报告中,设定值表达为[用户名](或=字段!UserID.Value)

请记住,如果报告有多个参数,则可能需要在URL中包含所有参数,即使空白,这取决于你的数据集查询是如何写的。

要使用动作传递参数=转到URL,表达设置为:

="http://server.domain.com/ReportServer?/ReportFolder1/ReportSubfolder1/ReportName&UserID="
 &Fields!UserID.Value 
 &"&rc:Toolbar=false"
 &"&rs:ClearSession=True"

如果遵循务必表达式后面有一个空格通过与(一个换行符是不够的)。 没有空间的表达式之前,需要。 这种方法可以传递参数,但并不能掩盖它,因为它是在URL中可见。

如果不包括与RS:ClearSession = true,则报告将不会刷新,直到浏览器会话缓存被清除。

要使用Action参数传递=转到报告:

  • 指定报告
  • 添加参数(S)来运行报告
  • 添加参数(S)你要传递(参数需要在目标报告中定义,所以据我所知,你不能使用特定的URL的命令,如RC:使用此方法工具栏); 不过,我想这将有可能读取或设置提示用户复选框,在报告服务器参数可见,通过报告自定义代码。)

作为参考, / =%2F



Answer 3:

我刚刚解决了这个问题我自己。 我发现MSDN上的解决方案: http://msdn.microsoft.com/en-us/library/ms155391.aspx 。

格式基本上是

http://<server>/reportserver?/<path>/<report>&rs:Command=Render&<parameter>=<value>


Answer 4:

尝试在你的URL变化“报告”对“的ReportServer”



Answer 5:

尝试通过URL传递多个值:

/ReportServer?%2fService+Specific+Reports%2fFilings%2fDrillDown%2f&StartDate=01/01/2010&EndDate=01/05/2010&statuses=1&statuses=2&rs%3AFormat=PDF

这应该工作。



Answer 6:

我通过将现有参数的值的URL,而不是参数的标签解决了类似的问题。

举例来说,我有一个名为的viewName参数,该参数的预定义的可用值的报告是:(标签/值)订单/ sub_orders,的OrderDetail / sub_orderDetail,产品/ SUB_PRODUCT。

要调用本报告,网址为参数=产品自动呈现,你必须指定的值不是标签。
这将是错误的: HTTP://服务器/的reportserver /数据+词典/ DetailedInfo&的viewName =产品及RS:命令=渲染

这是正确的: HTTP://服务器/的reportserver /数据+词典/ DetailedInfo&的viewName = SUB_PRODUCT&RS:命令=渲染



Answer 7:

按照这个链接 ,你也可以有如果不使用代理的语法与和RP前缀您的PARAM



Answer 8:

尝试在你的URL变化“报告”对“的ReportServer”。 对于刚刚接触这个http://host/ReportServer/并从那里你可以去报告页面。 有附加的parmaters这样&<parameter>=<value>

欲了解更多的详细信息:

http://dobrzanski.net/2008/08/11/reporting-services-problem-with-passing-parameters-directly-in-the-url/

https://www.mssqltips.com/sqlservertip/1336/pass-parameters-and-options-with-a-url-in-sql-reporting-services/



文章来源: Passing parameter via url to sql server reporting service