Crystal 2016 年报告:如何在呈现组页脚时抑制页脚?

Crystal Reports 2016: How to Suppress Page Footer when Group Footer is Rendered?

我被要求修改一份包含监管声明的 Crystal 报告。呈现报告时,无论呈现语句的页面如何,都必须抑制给定的页脚内容。有没有办法在显示监管声明时隐藏页脚?该语句是报表组页脚 3 中的一个 OLE 对象。

我创建了一个公式如下:

WhilePrintingRecords;
booleanVar SuppressFooter := false;

我把公式放在了报表头,主要是为了初始化变量。

我创建了一个类似的公式并将其放在组页脚 3 中并将变量设置为 true。然后,我在页脚部分专家的抑制公式中引用了组页脚 3 公式。不幸的是,这会抑制与给定记录关联的所有页面的页脚。

是否有可用于声明的操作数 - 当打印组页脚 3 时,设置 SuppressFooter:= true?理想情况下,我会将此逻辑插入页脚部分专家的抑制公式中。

我将如何实现预期的功能?

更新 建议将@SuppressFooter 移动到Group Header 3。它被定义为

WhilePrintingRecords;
BooleanVar SuppressFooter := false;

我还在Group Footer 3中添加了@SetSuppressFooter。它的定义是:

WhilePrintingRecords;
BooleanVar SuppressFooter := true;

用于抑制页脚的公式定义为:

WhilePrintingRecords;
{@SetSuppressFooter} = true;

报告结构的片段也包括在内:

上述逻辑在渲染 Group Footer 3 时仍然没有抑制页脚。

首先,用于抑制页脚的公式应定义为:

WhilePrintingRecords;
BooleanVar SetSuppressFooter;

然后,如果您的公式@SetSuppressFooter 放在组页脚中,即使组页脚被条件抑制,它也会被计算。 IE。为了有条件地设置变量(= 打印页脚时)将字段放在该部分中是不够的,但必须在此处包含逻辑:

WhilePrintingRecords;
BooleanVar SuppressFooter;
If {Befehl.showgroup} = 1 Then SuppressFooter := true Else SuppressFooter := false;

当然,您必须将 {Befehl.showgroup} = 1 替换为您自己的条件,即控制组页脚部分可见性的条件。

最后一点:根据分页符在报表中的位置,使用与组页脚可见性相反的逻辑来实现页脚可见性可能更容易。在这种情况下,不需要“WhilePrintingRecords”公式。