【问题标题】:Crystal Reports 11 Hide field until formula is runCrystal Reports 11隐藏字段直到公式运行
【发布时间】:2017-12-07 21:11:51
【问题描述】:

我在 Crystal Reports 11 中有一个报表,在页眉的页面顶部有 2 个图像。我有一个在页脚中运行的公式。我想根据公式的值隐藏/显示这些图像,但是当报告加载时,图像会在公式运行之前加载,因此它们无法正确显示。有没有办法延迟标题中某些内容的加载,直到最后运行某些内容?基本上,在报告运行结束时加载图像?

该方案是双重收据/发票声明。欠公式余额位于页脚组页脚 3H 中。文本框位于组标题 3a 中。在运行报告时,@BalanceOwed 显示余额,但当报告完全运行时,@BalanceOwed 为 0。因此在这种情况下,文本框 Receipt 应显示与文本框 Invoice 相比,然后它在相反的情况下工作如果@BalanceOwed > 0。

我知道如何根据值而不是根据报表构建要隐藏/显示的元素时不存在的值来抑制某些内容。

谢谢。

杰森

【问题讨论】:

    标签: crystal-reports-xi suppress


    【解决方案1】:

    在图像选择公式中使用 EvaluateAfter() 函数。给 EvaluateAfter() 在页脚中需要首先运行的公式的名称。

    您将把 EvaluateAfter() 放在字段/图像的条件抑制公式中,在任何其他逻辑之前的公式顶部。

    EvaluateAfter() 告诉晶体在指定公式完成运行之前不要运行公式。

    【讨论】:

    • 感谢您的建议。问题,因为我以前从未使用过这个。为了看看会发生什么,我创建了一个公式,上面写着 EvaluateAfter({BalanceDue}) 并将其放在我要隐藏的文本框所在的标题中。我也将 BalanceDue 放在那里,只是为了查看显示的内容。我运行了报告,报告得出了 409.00 报告的应付余额。那是在发票上的“到期余额”框中。在标题中,BalanceDue 显示 409.00,EvaluateAfter({BalanceDue}) 显示 0。当我使用任何潜在的发票/收据运行此程序时,EvaluateAfter 调用始终显示 0。
    • 我相信格式实际上应该是EvaluateAfter({@BalanceDue})
    • 您在格式上是正确的,这就是我的格式。我删除了 @ 符号,因为我无法在其中发布带有它们的回复。
    • 哦,既然我看了你之前的评论,我可能会有更多的见解。对于你要抑制的文本框,你是否使用了条件抑制?您需要将 EvaluateAfter({@BalanceDue}) 添加到顶部的抑制公式中。
    • 是的,这就是我正在做的。我打开 X+2 以抑制该元素并添加该 EvaluateAfter 语句。问题是,当我这样做时,它的值始终为 0,即使稍后在页脚中运行它,它也不是。
    猜你喜欢
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多