【问题标题】:Conditional Formula Bombs Crystal Report条件公式炸弹水晶报表
【发布时间】:2011-10-28 20:56:53
【问题描述】:

我的一份水晶报告有问题,它是条件公式。公式如下所示。我有两个表,其中包含链接到我的 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} 的链接 我所有的表都链接为内部连接,而不是强制执行

【问题讨论】:

    标签: crystal-reports crystal-reports-2008


    【解决方案1】:

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

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

    【讨论】:

    • 不错的一个标记,我会给它一个bash,看看我得到了什么,谢谢你的建议..
    • 好,消息..按照你的建议,左外连接仍然轰炸报告,但将两个链接更改为完整外连接破解了它..非常感谢你为我指出正确的方式马克..
    猜你喜欢
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多