Reporting services 为什么IIF比较失败

Reporting services 为什么IIF比较失败,reporting-services,ssrs-2008,ssrs-2008-r2,Reporting Services,Ssrs 2008,Ssrs 2008 R2,我必须使用一个数据库,它返回的字符串数据既有字母字符,也有数字字符。例如,1条记录可能会返回字符串“1000”,下一条记录可能会返回字符串“blah”。所有alpha字符串将始终为“blah” 当返回一个数字字符串时,我想将其格式化为货币,如果是字母,则显示“Blah” 这就是我尝试过的,它有点效果 =IIf(IsNumeric(First(Fields!MyField.Value, "DataSet1")), FormatCurrency(First(Fields!MyField.Value

我必须使用一个数据库,它返回的字符串数据既有字母字符,也有数字字符。例如,1条记录可能会返回字符串“1000”,下一条记录可能会返回字符串“blah”。所有alpha字符串将始终为“blah”

当返回一个数字字符串时,我想将其格式化为货币,如果是字母,则显示“Blah”

这就是我尝试过的,它有点效果

 =IIf(IsNumeric(First(Fields!MyField.Value, "DataSet1")), FormatCurrency(First(Fields!MyField.Value, "DataSet1")) ,"Blah")
如果MyField值是一个数字字符串,如“1000”,则报告中的格式为$1000.00。但是,如果MyField值为“blah”,则报告将显示“ERROR”

有人能解释我为什么看到这种奇怪的行为吗

谢谢
Perry

始终会计算
IIf
表达式的两个条件,因此在计算
FormatCurrency(“blah”)
时会出现问题,即使
IsNumeric(“blah”)
返回
False


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

始终计算
IIf
表达式的两个条件,因此在计算
FormatCurrency(“blah”)
时,即使
为数值(“blah”)
返回
False
,也会出现问题

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