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

时间:2011-11-02 12:27:06

标签: crystal-reports crystal-reports-2008

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

Formaula pagenumber = totalpagecount将无法正常工作,因为它始终会抑制最后一页的标题。

3 个答案:

答案 0 :(得分:14)

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

WhilePrintingRecords;
Global BooleanVar finished;
finished := OnLastRecord

并将其作为页眉中的抑制公式:

Global BooleanVar finished
  • 在初始化finished之前,将显示页眉。
  • 打印详细记录后,它将设置为false
  • 当您最终到达最后一个详细信息部分时,finished设置为true
  • 如果您碰巧到达另一个页面标题,finished仍然是true,Crystal会取消标题。

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

答案 1 :(得分:4)

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

WhilePrintingRecords;
Global BooleanVar finished;
finished := OnLastRecord AND NOT OnFirstRecord

并且即使详细信息只包含一行,它也能正常工作。

答案 2 :(得分:1)

您可以调整Crystal Reports: Display a Message When Report Has No Data以满足您的需求。