我有一份SSRS报告,其中一个参数允许多项选择,我还添加了一个' All'选项将通过''以数据库为例,选择所有部门。
所以在下拉菜单中我们有类似的内容:
(全选)
全部(代码'')
HR(代码1)
IT(代码2)
管理(代码3)
因此(全选)是多选的标准选项,而(全部)是传递空/'的自定义选项。我们有额外的(全部)允许返回所有部门(一些不在列表中)。我想要做的是了解如果我选择(全部)和其他选项一起传递给数据库的内容 - 那么如果我选择(全部)和HR?目前,如果我选择这个 - 只需显示人力资源的结果。
我希望能够编写一个条件,说明他们是否已选择(全部)执行此操作,但我不确定数组是如何传递的?当选择(全部)时,我想模仿报告传递的内容吗?
答案 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')
有一些性能影响所以请确保您使用多个选项进行测试。