Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 用于将数据转换为整数的SSRS IIF_Reporting Services_Ssrs Tablix_Iif - Fatal编程技术网

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)
。查看更多详细信息,了解为什么在这种情况下这种方法效果更好。