您的问题缺少很多细节,但我猜..
- “我创建了 3 个表”意味着您在报表上创建了 3 个表(tablix)控件,而不是您创建了 3 个数据库表。
- 您想根据参数选择显示/隐藏这些表格
- 您的参数是多值的
- 您显示的 IIF 语句位于
hidden
每个表的属性中。
如果有任何错误,请更新您的问题以澄清。
您的表达式的问题是它们只检查第一个选定的参数值(当您引用 index(0)
时),因此每次所有三个的结果都是相同的。
为了解决这个问题,您可以执行以下操作...
=("|" & JOIN(Parameters!Transaction.Value,"|") & "|").Contains("|1|") =False
对其他两个表重复此操作,替换"|1|"
为"|2|"
or "|3|"
。
所有这JOIN()
一切都是由管道符号分隔的所有选定参数值,|
这将给我们类似的东西
1|2|3 or 1|2 for exmaple
接下来我们在开始和结束处添加一个管道给我们
|1|2|3| or |1|2| for exmaple
如果您的参数值大于或等于 10 并且检查是否存在“1”,这使得 if 可以安全使用,即使未选择 1 而选择了 10,也会返回 true。
最后,我们检查连接的值是否包含字符串|1|
等|2|
,并将结果与 false 进行比较。这样我们就不需要使用 IIF 语句