Reporting services 用于将数据转换为整数的SSRS IIF
我有一个动态生成列的矩阵报告。现在,其中一列包含所有整数数据,所以我想将其转换为整数类型。现在我尝试了下面的表达:Reporting services 用于将数据转换为整数的SSRS IIF,reporting-services,ssrs-tablix,iif,Reporting Services,Ssrs Tablix,Iif,我有一个动态生成列的矩阵报告。现在,其中一列包含所有整数数据,所以我想将其转换为整数类型。现在我尝试了下面的表达: =IIF(IsNumeric(Fields!Answer.Value),CInt(Fields!Answer.Value),Fields!Answer.Value) 但这给了我一些列的错误,其中一些行数据只包含integer,而其他行包含mix。所以我尝试了下面的表达,但仍然没有运气 =IIF(Fields!Question.Value = "Amount:", CInt(Fie
=IIF(IsNumeric(Fields!Answer.Value),CInt(Fields!Answer.Value),Fields!Answer.Value)
但这给了我一些列的错误,其中一些行数据只包含integer,而其他行包含mix。所以我尝试了下面的表达,但仍然没有运气
=IIF(Fields!Question.Value = "Amount:", CInt(Fields!Answer.Value), Fields!Answer.Value)
因此,基本上只有Amount:
列具有真正的整数值,而所有其他列具有全部文本或文本与整数数据的混合。因此,对于数据同时为text和integer的所有列,我得到了错误
样本数据:
+------+--------------+-----------+
|Name: |Phone Number: |Emp Number |
+------+--------------+-----------+
|Alice |123-456-7890 | 123 |
|Bob |2345678901 | 12345 |
+------+--------------+-----------+
在上面的示例数据中,Amount:包含所有整数值,而Name是所有文本,电话号码是文本和整数。使用IIF(…)表达式,我得到以下结果
结果:
+--------+--------------+-----------+
|Name: |Phone Number: |Emp Number |
+--------+--------------+-----------+
|#Error |#Error | 123 |
|#Error |2345678901 | 12345 |
+--------+--------------+-----------+
我查看了这些参考资料并寻找解决方案,但没有运气。任何关于我可能缺少的东西的帮助 从参考帖中找到了解决方案
=IIF(IsNumeric(Fields!Answer_Question.Value), CLng(Val(Fields!Answer_Text.Value)), Fields!Answer_Text.Value)
我使用了
CLng()
而不是CInt()
,因为Phone Number
列字段的值很长 您是否尝试过使用相同的逻辑格式化数据,而不是尝试转换数据?将format属性设置为类似于=IIF(Fields!Question.Value=“Amount:”,“f0”,“)
是的,我尝试过,但报告中的列数据为空。因此,我寻找了其他选项。您可能需要发布数据集中的一些示例数据,包括数据类型,以便我们可以重现您的场景。不确定您试图通过转换数字来实现什么,但是如果您只想格式化数字,您可以使用FORMATNUMBER,因为结果也是一个字符串=IIF(Fields!Question.Value=“Amount:”,FORMATNUMBER(Fields!Answer.Value,0),Fields!Answer.Value)
您也可以尝试使用VAL
函数而不是CInt
。就像VAL(Fields!Answer.Value)
。查看更多详细信息,了解为什么在这种情况下这种方法效果更好。