1

How can I re-write the following Formula from Crystal Reports in SSRS

  select {spAR6100b_allcompanies;1.artyp}
    case 'BCS','CIG','HUM','INA','INS','MNG','PHC','SEC','SPC','TRI','UHC','WMD' : 'Primary'
    case 'COI','ICO','INP','MCO','COI' : 'Secondary'
 default: ''
4

1 回答 1

1

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 类型函数。

于 2013-10-16T13:39:22.223 回答