使用URL将多个值传递给SSRS中的下拉参数

时间:2014-07-23 23:48:17

标签: reporting-services

我正在尝试为ssrs中的参数传递多个值,这些参数由','分隔。使用存储过程中使用split函数的where条件限制结果数据集,这给出了我的报告数据集的结果

WHERE YEAR(a.month_start_date)IN (SELECT Value FROM dbo.FnSplit(@year,','))
--AND datename(month,month_start_date) IN (SELECT Value FROM dbo.FnSplit(@month,','))
AND b1.branch_cd IN (SELECT Value FROM dbo.FnSplit(@branch,','))

我创建了一个数据集来获取年份过滤器的可用值

配置参数以从我的过滤器数据集中获取可用值,并选中“允许多个值”选项

Select distinct year(month_start_date) as Year
From [DB].[dbo].[table]

然后我还限制我的报告数据集接受具有以下条件的参数。我配置参数以接受以下值

=Join(Parameters!year.Value,",")

我传入了url中的值

http://<servername>/ReportServer/Pages/ReportViewer.aspx?<reportname>rs:Command=Render&year=2012,2013,2014

我的过滤器不会选择通过网址传递的值。该报告仅显示下拉列表中的值列表,但不选择通过URL解析的值

我不确定我是否遗漏了其他任何东西。请建议。

谢谢!

1 个答案:

答案 0 :(得分:1)

这里的问题是您的网址构造不正确。您试图通过这些年来作为单个参数传递,而不是它的工作方式。将其作为一大堆参数传递,然后让报告服务器将它放在一起并将其放入SQL中。

您的网址应如下所示(我将:更改为:%3a并将年份参数分解)

http://<servername>/ReportServer/Pages/ReportViewer.aspx?<reportname>rs%3aCommand=Render&year=2012&year=2013&year=2014

我希望这可以帮助别人。