Crystal reports Crystal Reports-如果页面上没有记录,则隐藏页眉

Crystal reports Crystal Reports-如果页面上没有记录,则隐藏页眉,crystal-reports,crystal-reports-2008,Crystal Reports,Crystal Reports 2008,如果最后一页上没有记录(详细信息部分),如何隐藏页眉。如果最后一页上有一些数据,则必须在最后一页显示页眉,否则将隐藏页眉 formulapagenumber=totalpagecount不起作用,因为它将始终抑制最后一页的页眉。您可以根据需要进行调整。将此公式放在详细信息部分的抑制字段中: WhilePrintingRecords; Global BooleanVar finished; finished := OnLastRecord 并使其成为页眉中的抑制公式: Global Boolea

如果最后一页上没有记录(详细信息部分),如何隐藏页眉。如果最后一页上有一些数据,则必须在最后一页显示页眉,否则将隐藏页眉


formula
pagenumber=totalpagecount
不起作用,因为它将始终抑制最后一页的页眉。

您可以根据需要进行调整。

将此公式放在详细信息部分的抑制字段中:

WhilePrintingRecords;
Global BooleanVar finished;
finished := OnLastRecord
并使其成为页眉中的抑制公式:

Global BooleanVar finished
  • 在初始化
    完成之前
    将显示页眉
  • 打印详细记录后,它将设置为
    false
  • 当您最终到达最后一个细节部分时,
    finished
    设置为
    true
  • 如果您碰巧到达另一个页眉,
    finished
    仍为
    true
    ,Crystal将抑制页眉

这是一个有趣的问题。我以前遇到过这种行为,但从未试图解决它。我认为您需要使用一个变量,因为在页眉中,像
Next()
OnLastRecord
这样的常用选项无法区分多打印一条记录和多打印一条记录。我认为运行总计也会有同样的问题——在多打印一条记录的页面上和没有记录打印的页面上的值都是相同的。

我发现了更好的解决方案,并且解决了这个问题(只是稍微调整了Noa的代码):


即使细节只包含一行,它也能工作。

太棒了,这就是我要找的,2011年的一篇文章给出了一个提示。如果你有多条记录,效果很好,但是如果你只有一条记录,它就不会打印页眉了……我尝试了这个方法,它在页面上隐藏了页眉,而在细节部分没有记录,但它也在我的细节部分隐藏了最后一条记录。所以它显示了错误的结果。
WhilePrintingRecords;
Global BooleanVar finished;
finished := OnLastRecord AND NOT OnFirstRecord