在乘法表达式中字段为空时发生错误

时间:2018-02-28 10:12:52

标签: reporting-services expression

我遇到了一个奇怪的问题: 当我使用一个简单的表达式时:

=iif(Fields!Length.Value = "", "empty", Fields!Length.Value)

然后一切正常,我在报告中得到了我的价值或“空”这个词。

enter image description here

如果我将表达式改为长度的2倍,那么我的“空”仍会出现。

=iif(Fields!Length.Value = "", "empty", (Fields!Length.Value + Fields!Length.Value))

enter image description here

但是当我乘以时,我的“空”转到#Error,而其余的数据工作正常......

=iif(Fields!Length.Value = "", "empty", (Fields!Length.Value * Fields!Length.Value))

enter image description here

有什么想法吗?我发现这种行为非常非常奇怪。

1 个答案:

答案 0 :(得分:1)

你的问题是IIF每次都会评估真假结果,即使错误的结果不会在最终输出中使用。所以它试图做

'' * ''

当你的值为空字符串时。

你可以通过使用VAL来解决这个问题,这将首先返回字符串的数值,就像这样。

=IIF(Fields!Length.Value = "", "empty", (VAL(Fields!Length.Value) * VAL(Fields!Length.Value)))