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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在乘法表达式中字段为空时发生错误相关的知识,希望对你有一定的参考价值。

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

=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

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

答案

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

'' * ''

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

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

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

以上是关于在乘法表达式中字段为空时发生错误的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 验证仅在字段不为空时验证正则表达式

数据为空时的jqGrid错误

sql server 2008环境中,字段为decimal(18,2),当输入为空时,会报错。

仅当字段不为空时才进行电子邮件验证

Sql Server 2005中当两个整型字段中一个为空时如何比较大小?

文本字段为空时隐藏自动完成表格视图