我目前正在编写一份报告,其中包含从 Web 服务注入的数据。该网络服务向其发送“双重?” 允许空值。在报告中,它显示返回的值,这些值稍后用于对数字进行求和和平均。我的问题在于显示值的表达式(当我进行计算时,我会看到类似的问题,但每次只有一步......)我正在使用 IIf 语句检查值是否为数字,如果如果不显示空字符串,则显示值(将其转换为双精度值)。当它是一个数值时,该值会正确显示,但是当它为空时,我得到的值是#ERROR。似乎 IIf 语句评估了 IIf 语句的两端!!!
无论如何,我已经做了一些研究,似乎人们建议修改发送代码以检查其是否为空并发送 0但在我的情况下这不会有帮助(负数也不会,因为它也会发送负数)。这在我的情况下不起作用的原因是我必须使用全 0 但不是空值来计算平均值。例如...
"100, 0, null" => 这应该是 50 的平均值...如果要转换为 0 的那个 null 将平均为 25...
无论如何继承我的代码...
=IIf(IsNumeric(Fields!Ventas.Value), CDbl(Fields!Ventas.Value), "")
我也尝试过使用 switch 语句并得到同样的问题......
=Switch(IsNumeric(Fields!Ventas.Value) = False, "", IsNumeric(Fields!Ventas.Value) = True, CDbl(Fields!Ventas.Value))
我还通过测试测试了 IIf 条件是否正常工作:
=IIf(IsNumeric(Fields!Ventas.Value), 1, 0)
这工作正常......无论如何,任何帮助将不胜感激,因为我不知道还能尝试什么......下面是我发现的一些关于我的问题的链接,但他们再次建议发送 0 而不是 null ,这在我的情况下是无用的...并且一个链接建议使用开关,但同样不起作用...