我遇到了一个奇怪的问题: 当我使用一个简单的表达式时:
=iif(Fields!Length.Value = "", "empty", Fields!Length.Value)
然后一切正常,我在报告中得到了我的价值或“空”这个词。
如果我将表达式改为长度的2倍,那么我的“空”仍会出现。
=iif(Fields!Length.Value = "", "empty", (Fields!Length.Value + Fields!Length.Value))
但是当我乘以时,我的“空”转到#Error,而其余的数据工作正常......
=iif(Fields!Length.Value = "", "empty", (Fields!Length.Value * Fields!Length.Value))
有什么想法吗?我发现这种行为非常非常奇怪。
答案 0 :(得分:1)
你的问题是IIF每次都会评估真假结果,即使错误的结果不会在最终输出中使用。所以它试图做
'' * ''
当你的值为空字符串时。
你可以通过使用VAL来解决这个问题,这将首先返回字符串的数值,就像这样。
=IIF(Fields!Length.Value = "", "empty", (VAL(Fields!Length.Value) * VAL(Fields!Length.Value)))