我有一个设置有基本表格的 RS 报告,如果选择了自定义指定值,我已将其设置为隐藏特定列。参数设置如下:
Label | Value
Select All | 1
Select 1 | 2
Select 2 | 3
Select 3 | 4
然后在 tablix 列可见性中将其设置为:
=Parameters!Client.Value <> 1
但是,理想情况下,我希望将其设置为选择多个参数值,但我得到:
The Hidden expression for the table 'tablix' contains an error: operator <> is not defined for the type Object() and type integer .
有什么想法吗?
最佳答案
您需要将 Client 设置为多值参数,以允许选择多个值。
问题是多值参数是基于数组的,因此您不能像对待单值参数一样对待它们。要获取选定的值,您需要使用Join
函数,该函数返回选定值的字符串。
获得此列表后,您可以检查返回的字符串中的某些值,并根据其值是否已被选择来确定每列的可见性。因此,对于每列的可见性,请使用以下内容:
=IIf(InStr(Join(Parameters!Client.Value, ","), "1") > 0, false, true)
即如果值1在所选值的字符串中,则不隐藏,否则隐藏。
我创建了一个简单的报告来测试这一点。一些例子:
所以这应该适合您的要求。
移至多值参数还意味着您可以从可用值中删除全选选项,因为默认情况下该选项始终可用。
关于reporting-services - SSRS 自定义可见性参数 - 多选错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16011904/