我有一个基本表设置的RS报告,如果选择了自定义指定值,我将其设置为隐藏特定列。参数设置如下:
Label | Value
Select All | 1
Select 1 | 2
Select 2 | 3
Select 3 | 4
然后在Tablix列的可见性中将其设置为:
=Parameters!Client.Value <> 1
但是我理想情况下要将其设置为选择多个参数值,但我得到:
表'tablix'的隐藏表达式包含错误:运算符&lt;&gt;没有为Object()类型定义并输入整数。
有什么想法吗?
答案 0 :(得分:2)
您需要将客户端设置为多值参数,以允许选择多个值。
问题是多值参数是基于数组的,因此您不能像处理单值参数那样对待它们。要获取选定的值,您需要使用Join
函数,该函数返回所选值的字符串。
获得此列表后,您可以检查返回的字符串中的某些值,并根据每列的可见性来确定其值是否已被选中。因此,对于每个列的可见性,请使用以下内容:
=IIf(InStr(Join(Parameters!Client.Value, ","), "1") > 0, false, true)
即。如果值 1 在选定值的字符串中,请不要隐藏,否则隐藏。
我创建了一个简单的报告来测试它。一些例子:
所以这应该符合你的要求。
移至多值参数也意味着您可以从可用值中删除全选选项,因为默认情况下此选项始终可用。
答案 1 :(得分:0)
您需要将Parameter值转换为Int才能进行比较。
这样做:
= CInt(Parameters!Client.Value) <> 1