SSRS报告错误中的IIf(Instr)-SSRS表达式中的切换案例

时间:2019-05-30 15:37:19

标签: sql-server reporting-services ssrs-2008 rdlc

我的报告如下:

enter image description here

我的报告的SSRS格式如下:

enter image description here

我只希望显示总计的一行,并且不希望显示总百分比行。为此,我想在表达式中添加case / switch语句:

If Column_grouping contains "percent" then show "%value" 
If column_grouping does not contain "percent" then show "total"

我的SSRS表达式如下:

​​​​​​​=Switch
(Fields!Column_Grouping.Value like "*percent*", Fields!Total_value_Count_pct.Value,
Fields!Column_Grouping.Value not like "%percent%",Sum(Fields!Total_value_Count.Value))

很明显,这个表达是错误的。有任何解决方法吗?!

1 个答案:

答案 0 :(得分:1)

我认为您可以稍微简化一下表达式,而只需使用IIF语句。 SWITCH最好与两个以上的表达式一起使用来求值。此外,您应该能够按照问题标题中的指示使用InStrContains。我认为以下表达式应该有效。

= IIF(Fields!Column_Grouping.Value.Contains("percent"), 
      Fields!Total_value_Count_pct.Value, Fields!Total_value_Count.Value)

有关InStr的工作原理的更多详细说明,请参见this answer。 Contains只会检查字符串是否出现在您使用它的字段中。