为什么这个IIF比较失败了

时间:2016-04-27 13:13:19

标签: reporting-services ssrs-2008 ssrs-2008-r2

我必须使用一个数据库,该数据库返回既是字母字符又使用数字字符的字符串数据。例如,1条记录可以返回字符串" 1000"接下来可能会返回字符串" blah"所有alpha字符串将始终为" Blah"

当返回一个数字字符串时,我想将其格式化为货币,如果是alpha show" Blah"。

这是我试过的,它有点工作???

 =IIf(IsNumeric(First(Fields!MyField.Value, "DataSet1")), FormatCurrency(First(Fields!MyField.Value, "DataSet1")) ,"Blah")

如果MyField值是一个数字字符串,例如" 1000"它在报告上格式化为$ 1,000.00。但是,如果MyField值为" blah",则报告显示" ERROR"

任何人都能解释为什么我会看到这种奇怪的行为吗?

由于 佩里

1 个答案:

答案 0 :(得分:2)

始终评估IIf表达式的两个条件,因此即使FormatCurrency("blah")返回IsNumeric("blah"),评估False时也会出现问题。

您可以使用custom code中的相同逻辑解决此问题,您可以使用完整的If/Then/Else代码。