有条件的方程式炸弹水晶报告

时间:2011-10-28 07:20:46

标签: crystal-reports crystal-reports-2008

我的一个水晶报告存在问题,这是条件公式。公式如下所示。我有两个表,其中包含链接到我的invhdr表的不同客户信息。当帐户代码是现金我需要从一个表中检索一个字段,反之亦然..麻烦是水晶似乎忽略了下面写的条件公式,似乎要求该字段的链接存在,即使公式应该防止检索字段的要求..

任何人都可以解释一个可能的解决方法。如果有可能,可能是条件表链接?谢谢ND

if Len("" + {invhdr.ACCT}) > 0 then if {invhdr.ACCT} = 'CASH' then {CashCust.CUSTOM1}
else if {invhdr.ACCT} <> 'CASH' then {Lookup.VATREGNO} else "";

所以说如果invhdr.ACCT ='test',它似乎仍然需要{CashCust.CUSTOM1}的链接 我的所有表都链接为内部联接,而不是强制执行

1 个答案:

答案 0 :(得分:1)

我建议将内连接更改为左外连接(从invhdr表更改为CashCust和Lookup表,以便invhdr位于连接的内部)。这与公式无关 - 如果你有内部连接所有三个表,那么所有三个表必须存在相应的记录才能返回行;这是内连接的定义。

如果invhdr.ACCT为null,则可能会遇到公式问题 - 旧版Crystal的怪癖是,如果公式的任何部分计算为null,则整个公式计算为null。此行为可能已在更新版本的Crystal中进行了修改,但如果没有,则"" + {invhdr.ACCT}可能会评估为null - 请尝试使用IsNull函数检查值。