2

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

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

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

 =Parameters!Client.Value <> 1

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

表“tablix”的隐藏表达式包含错误:未为 Object() 类型和 integer 类型定义运算符 <>。

有任何想法吗?

4

2 回答 2

2

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

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

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

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

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

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

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

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

移动到多值参数还意味着您可以从可用值中删除“选”选项,因为默认情况下始终可用。

于 2013-04-15T13:39:18.090 回答
0

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

做这个 :

= CInt(Parameters!Client.Value) <> 1
于 2013-04-15T09:47:27.097 回答