我有一个简单的公式,我更新为使用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条件中放入相同的总和部分,则显示空字符串。它是完全相同的值,并且条件得到适当评估。
在第一种情况下,它工作正常并显示344222.在第二种情况下,它应该从Price列18260获取另一个值。相反,它显示为空。
答案 0 :(得分:2)
没关系。我发现了这个问题。这可能是我见过的最迟钝的事情。
无论如何,问题不是公式。显然,Crystal报告认为IIF表达式2中的null无效,即使这是IIF的全部原因。因此,它抛出了异常,因为TBL_Delivery_Order_Header.DOHD_TotalDOPrice
为null并且是表达式2的一部分。虽然在评估期间甚至没有考虑它为null,但Crystal报表仍然不喜欢它。正如我所说,迟钝。
无论如何,公式编辑器中有一个下拉列表来决定如何处理空值。所以,我选择了“nulls的默认值”而不是“nulls的异常”。现在,突然间一切都很好(即使我从未声明任何默认值)。
所以,事实证明公式是正确的。我只需要询问水晶报告,以便在找到空值时不抛出异物。