SSRS - 多值参数 - 表达式被视为全部'选项

时间:2017-03-06 12:10:45

标签: arrays reporting-services parameter-passing

我有一份SSRS报告,其中一个参数允许多项选择,我还添加了一个' All'选项将通过''以数据库为例,选择所有部门。

所以在下拉菜单中我们有类似的内容:

(全选)

全部(代码'')

HR(代码1)

IT(代码2)

管理(代码3)

因此(全选)是多选的标准选项,而(全部)是传递空/'的自定义选项。我们有额外的(全部)允许返回所有部门(一些不在列表中)。我想要做的是了解如果我选择(全部)和其他选项一起传递给数据库的内容 - 那么如果我选择(全部)和HR?目前,如果我选择这个 - 只需显示人力资源的结果。

我希望能够编写一个条件,说明他们是否已选择(全部)执行此操作,但我不确定数组是如何传递的?当选择(全部)时,我想模仿报告传递的内容吗?

1 个答案:

答案 0 :(得分:0)

当选择内置的全选选项时,SSRS将参数设置为所有可能的值,并将其作为逗号分隔列表传递给数据集。您的自定义All具有自己的值,该值作为单个值发送,您将以不同于其他值的方式处理。

假设您的All参数值为'All',在数据集查询中,where子句需要

WWHERE dept IN (@dept) OR 'All' IN (@dept)

如果你的全部&选择HR,查询将是功能等同于

WHERE dept IN ('HR','All') OR 'All' IN ('HR','All')

有一些性能影响所以请确保您使用多个选项进行测试。