如何使用多选参数隐藏ssrs中的行

时间:2016-02-25 23:40:51

标签: reporting-services reportingservices-2005

我需要能够根据多选参数在SSRS 2005中有条件地隐藏行。如果多参数=" CS",我需要能够隐藏行,但如果多选参数是" CS"和"销售"然后我需要看到这一行。 我试过这个公式:

=IIf((Parameters!Level_4.Value(0) = "CS"
And Parameters!Level_4.Value(0) = "Sales"),false ,True)
=IIF((Parameters!Level_4.Value(0) = "CS"), True, False)

但它不起作用......

1 个答案:

答案 0 :(得分:1)

试试这个:

=Switch(
Array.IndexOf(Parameters!Level_4.Value, "CS")>-1 AND
Array.IndexOf(Parameters!Level_4.Value, "Sales")>-1,false,
Array.IndexOf(Parameters!Level_4.Value, "CS")>-1,true
)

注意多值参数可以包含一个或多个存储在数组数据类型中的值。因此,如果您在报表中选择一个值,它将存储在数组的0索引中,如果再选择一个值,它将存储在1索引中,依此类推。

示例:"CS"值存储在Level_4.Value(0)中,"Sales"存储在Level_4.Value(1)

我建议的表达式将检查两个值是否都被选中并在这种情况下返回true,否则如果仅选择"CS",它将返回false

更新:替代IndexOf支持

=Switch(
InStr(Join(Parameters!Level_4.Value, ","),"CS")>0 AND
InStr(Join(Parameters!Level_4.Value, ","),"Sales")>0,false,
InStr(Join(Parameters!Level_4.Value, ","),"CS")>0,true
)

如果有帮助,请告诉我。