当通过可能会或可能不为null的字段减去时,如何消除SSRS表达式中的#error?

时间:2015-06-12 16:38:25

标签: reporting-services ssrs-2008 reportbuilder3.0

我的报告中有几个字段,但这个问题与两个特定字段(Field2和Field3)有关。

  • Field2将始终使用数字填充。
  • Field3可以是null,0或其他数字。

我需要从Field2中减去Field3以得出新Field的数字。我无法理解的问题是,当Field3为Null时,我在新字段中出现#Error。下面是我的公式,并在Field3为空时得到错误。

=switch(isnothing(Fields!FIELD3.Value) = 1, "" ,Fields!FIELD3.Value = 0,"" , Fields!FIELD3.Value <> 0, Fields!FIELD3.Value - Fields!FIELD2.Value)

下面是Field2和Field3数据的示例数据以及公式字段(Field4)结果以及我希望结果实际是什么。我试图附加实际图像,但由于新网站没有允许发布图像的级别。

FIELD2    FIELD3    FIELD4             FIELD4_DESIRED_RESULTS
85.96     NULL      #Error             -
1428.85   476.28    -952.57            -952.57
500.00    600.00    100.00             100.00 

2 个答案:

答案 0 :(得分:1)

Reporting Services将null评估为&#34;&#34;。下面的表达式应该有效:

=IIF(Fields!FIELD3.Value = "",0,Fields!FIELD3.Value) - Fields!FIELD2.Value

答案 1 :(得分:0)

好吧,我不确定NULL是否为空字符串,但这对我有用

=IIF(IsNothing(Fields!FIELD3.Value),0,Fields!FIELD3.Value) - 
 IIF(IsNothing(Fields!FIELD2.Value),0,Fields!FIELD2.Value)

我知道IsNothing可以工作,并且应该将其应用于计算中的所有字段,除非您完全确定某个字段永远不能为NULL。

相关问题