SSRS如何将多个多值parms传递给URL

时间:2016-02-25 20:43:50

标签: url reporting-services parameters

我们有一个包含4个多值参数的报告。每个值将是20个字符,并且一些参数具有> 30种选择。如果用户应选择全部,则将参数作为& dept = 10& dept = 20等传递不会起作用,因为它将超过URL的限制2048。有另一种传递方式吗?以下是URL的部分内容,除了Department:

之外,每个parm只有一个值

...&安培; p_IncidentStartDate = 2015年1月1日和安培; p_IncidentEndDate = 2016年2月25日&安培; p_DepartmentId = QDP00000000000000041&安培; p_DepartmentId = QDP00000000000000008&安培; p_DepartmentId = QDP00000000000000011&安培; p_TouchpointId = QSE00000000000000075&安培; p_GeneralIssueId = DSE00000000000000021&安培; p_SpecificComplaintId = DSE00000000000000054&安培; p_IsSubmitted = 1安培; p_formGiftCardStatus =待定

数据集中使用的存储过程使用" SplitString"用逗号分隔参数的函数。所以,如果我手动运行proc,我会像这样传递parms:

enter image description here

是否有其他方法可以一次传递除一个值以外的参数? (我已经阅读了很多帖子,但无法找到有效的答案。)

1 个答案:

答案 0 :(得分:0)

首先,你可以选择一个手动选项叫做" All"并将查询的逻辑更改为如下所示:

SELECT *
FROM TABLE
WHERE (p_DepartmentId IN (@p_DepartmentId) OR @p_DepartmentId = 'All')

我假设p_DepartmentId是PK?不幸的是,这太久了。我会研究this answer的有效性。但我认为后一种解决方案涉及很多额外的工作。创建自定义" All"可能更容易。像我上面所示的条目。只需将其烘焙到返回部门数据集的查询中,就像这样。

SELECT 'All' AS p_DepartmentId
UNION
SELECT p_DepartmentId FROM TABLE