当条件为假时,带有 IIF 表达式的 SSRS 计算字段给出#error
SSRS Calculated field with IIF expression gives #error when the condition is false
您好,我是 SSRS 的新手,我正在制作我的第一份工作报告。直到今天我需要在 Tablix 中创建一个文本框来处理数字计算和文本时,它一直运行良好。我的 SQL table 中的一列以前是纯数字字段,现在某些行有 n|a。所以我写了下面的表达式来处理那些 n|as。当收益字段是数字时,公式有效,但当它是 n|a 时,它在报告中显示为#error,我不明白为什么。我已从文本框中删除所有格式,结果相同。
=IIF(Fields!Proceeds.Value<>"n|a",Fields!Proceeds.Value / Fields!DealBalance.Value,"n|a")
正如 TnTinMn 所解释的,IIF 总是计算表达式的真假部分。
简单的解决方法是做类似的事情
编辑 由于来自 OP
的更新而修改
=IIF(Fields!Proceeds.Value<>"n|a",VAL(REPLACE(REPLACE(Fields!Proceeds.Value,",",""),"$","")) / Fields!DealBalance.Value,"n|a")
这只是去掉 $ 符号和逗号,然后使用 VAL() 将文本转换为数字,如果文本不是数字,它将 return 为零,这不会导致错误,因为表达式的 false 部分将给出 0/DealBalance。
您好,我是 SSRS 的新手,我正在制作我的第一份工作报告。直到今天我需要在 Tablix 中创建一个文本框来处理数字计算和文本时,它一直运行良好。我的 SQL table 中的一列以前是纯数字字段,现在某些行有 n|a。所以我写了下面的表达式来处理那些 n|as。当收益字段是数字时,公式有效,但当它是 n|a 时,它在报告中显示为#error,我不明白为什么。我已从文本框中删除所有格式,结果相同。
=IIF(Fields!Proceeds.Value<>"n|a",Fields!Proceeds.Value / Fields!DealBalance.Value,"n|a")
正如 TnTinMn 所解释的,IIF 总是计算表达式的真假部分。
简单的解决方法是做类似的事情 编辑 由于来自 OP
的更新而修改=IIF(Fields!Proceeds.Value<>"n|a",VAL(REPLACE(REPLACE(Fields!Proceeds.Value,",",""),"$","")) / Fields!DealBalance.Value,"n|a")
这只是去掉 $ 符号和逗号,然后使用 VAL() 将文本转换为数字,如果文本不是数字,它将 return 为零,这不会导致错误,因为表达式的 false 部分将给出 0/DealBalance。