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

问题描述 投票:0回答:1

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

=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

任何的想法?我发现这种行为非常非常奇怪。

reporting-services expression
1个回答
1
投票

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

'' * ''

当你的值是一个空字符串。

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

=IIF(Fields!Length.Value = "", "empty", (VAL(Fields!Length.Value) * VAL(Fields!Length.Value)))
© www.soinside.com 2019 - 2024. All rights reserved.