SSRS 表达式通常不能很好地进行IN
比较。
有几个选项。
使用一个Switch
和一组链接Or
语句:
=Switch(Fields!arTyp.Value = "BCS" or Fields!arTyp.Value = "BCS" or Fields!arTyp.Value = "HUM", "Primary"
, Fields!arTyp.Value = "COI" or Fields!arTyp.Value = "ICO", "Secondary"
, True, "")
我只包含了你的几个案例,你可以看到它已经很长了——你需要根据需要添加尽可能多的值。
使用字符串匹配,您可以通过检查字段值是否在匹配值字符串中来简化这一点:
=Switch(InStr(",BCS,CIG,HUM,", "," & Fields!arTyp.Value & ",") > 0, "Primary"
, InStr(",COI,ICO,INP,", "," & Fields!arTyp.Value & ",") > 0, "Secondary"
, True, "")
我们将所有内容都用逗号括起来,以防止部分匹配出现误报。同样,将所有必需的值添加到匹配值的字符串列表中。
最后,您可以使用自定义代码进行此比较并将比较移动到报表中嵌入的 VB.NET 类型函数。