SSRS IIF,用于将数据转换为整数

时间:2019-07-01 16:19:13

标签: reporting-services ssrs-tablix iif

我有矩阵报告,可以动态生成我的列。现在该列之一具有所有整数数据,因此我想将其转换为Integer类型。现在,我尝试了以下表达式:

=IIF(IsNumeric(Fields!Answer.Value),CInt(Fields!Answer.Value),Fields!Answer.Value)

但是这给了我一些列错误,其中某些行数据仅包含整数,而其他行包含mix。所以我尝试了以下表达式,但还是没有运气!

=IIF(Fields!Question.Value = "Amount:", CInt(Fields!Answer.Value), Fields!Answer.Value)

因此,基本上只有Amount:列具有真实的整数值,而所有其他列具有所有文本或文本与整数数据的混合。因此,对于所有数据都为文本和整数的列,我得到了错误。

样本数据:

+------+--------------+-----------+
|Name: |Phone Number: |Emp Number |
+------+--------------+-----------+
|Alice |123-456-7890  | 123       |
|Bob   |2345678901    | 12345     |
+------+--------------+-----------+

在上面的示例数据中,Amount:包含所有整数值,而Name是所有文本,电话号码是text和整数。使用IIF(...)表达式可获得以下结果。

结果:

+--------+--------------+-----------+
|Name:   |Phone Number: |Emp Number |
+--------+--------------+-----------+
|#Error  |#Error        | 123       |
|#Error  |2345678901    | 12345     |
+--------+--------------+-----------+

我查看了这些参考文献herehere的解决方案,但没有运气。对我可能缺少的任何帮助。

1 个答案:

答案 0 :(得分:1)

this参考文章中找出解决方案。

=IIF(IsNumeric(Fields!Answer_Question.Value), CLng(Val(Fields!Answer_Text.Value)), Fields!Answer_Text.Value)

我使用CLng()代替了CInt(),因为Phone Number列字段的值很长。