SSRS自定义可见性参数 - 多选错误

时间:2013-04-15 09:35:29

标签: reporting-services ssrs-2008 parameter-passing

我有一个基本表设置的RS报告,如果选择了自定义指定值,我将其设置为隐藏特定列。参数设置如下:

Label      | Value
Select All |   1
Select  1  |   2
Select  2  |   3
Select  3  |   4

然后在Tablix列的可见性中将其设置为:

 =Parameters!Client.Value <> 1

但是我理想情况下要将其设置为选择多个参数值,但我得到:

  

表'tablix'的隐藏表达式包含错误:运算符&lt;&gt;没有为Object()类型定义并输入整数。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您需要将客户端设置为多值参数,以允许选择多个值。

问题是多值参数是基于数组的,因此您不能像处理单值参数那样对待它们。要获取选定的值,您需要使用Join函数,该函数返回所选值的字符串。

获得此列表后,您可以检查返回的字符串中的某些值,并根据每列的可见性来确定其值是否已被选中。因此,对于每个列的可见性,请使用以下内容:

=IIf(InStr(Join(Parameters!Client.Value, ","), "1") > 0, false, true)

即。如果值 1 在选定值的字符串中,请不要隐藏,否则隐藏。

我创建了一个简单的报告来测试它。一些例子:

enter image description here

enter image description here

enter image description here

所以这应该符合你的要求。

移至多值参数也意味着您可以从可用值中删除全选选项,因为默认情况下此选项始终可用。

答案 1 :(得分:0)

您需要将Parameter值转换为Int才能进行比较。

这样做:

= CInt(Parameters!Client.Value) <> 1