Crystal 报告公式有时不返回值

Crystal Report formula not returning values sometime

我更新了一个简单的公式以使用 IF 条件。根据 CR 设计者的说法,没有错误。但是,公式仍然是 returns 空字符串。

这是新公式

     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 条件中,它会显示空字符串。它是完全相同的值,并且条件被正确评估。

编辑: 记录存在时的值

记录不存在时的值

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

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

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

无论如何,公式编辑器中有一个下拉菜单来决定如何处理空值。所以,我选择 "default values for nulls" 而不是 "exception for nulls"。现在,突然之间一切都很好(即使我从未声明过任何默认值)。

所以,结果证明公式是正确的。我只需要请求 crystal 报告在发现空值时不要发出嘶嘶声。