Crystal Report公式有时不返回值

时间:2016-03-31 04:29:55

标签: crystal-reports

我有一个简单的公式,我更新为使用IF条件。根据CR设计师的说法,没有任何错误。但是,公式仍然返回空字符串。

这是新公式

     IIF (IsNull({TBL_Delivery_Order_Header.DOHD_TotalDOPrice}), sum
({VIEW_Delivery_Note.Price},{VIEW_Delivery_Note.PODD_Delivery_Order_No}) , 
{TBL_Delivery_Order_Header.DOHD_TotalDOPrice})

这是旧公式。

sum({VIEW_Delivery_Note.Price},{VIEW_Delivery_Note.PODD_Delivery_Order_No}) 

如果我只留下那个总和,那么价值就会合适。如果我在IIF条件中放入相同的总和部分,则显示空字符串。它是完全相同的值,并且条件得到适当评估。

编辑: 记录存在时的值 Values when record exists

记录不存在时的值 Values when record does not exist

在第一种情况下,它工作正常并显示344222.在第二种情况下,它应该从Price列18260获取另一个值。相反,它显示为空。

1 个答案:

答案 0 :(得分:2)

没关系。我发现了这个问题。这可能是我见过的最迟钝的事情。

无论如何,问题不是公式。显然,Crystal报告认为IIF表达式2中的null无效,即使这是IIF的全部原因。因此,它抛出了异常,因为TBL_Delivery_Order_Header.DOHD_TotalDOPrice为null并且是表达式2的一部分。虽然在评估期间甚至没有考虑它为null,但Crystal报表仍然不喜欢它。正如我所说,迟钝。

无论如何,公式编辑器中有一个下拉列表来决定如何处理空值。所以,我选择了“nulls的默认值”而不是“nulls的异常”。现在,突然间一切都很好(即使我从未声明任何默认值)。

所以,事实证明公式是正确的。我只需要询问水晶报告,以便在找到空值时不抛出异物。