Crystal Reports - Hide page header if there in no record on a page

Tausif Khan picture Tausif Khan · Nov 2, 2011 · Viewed 19.2k times · Source

How to hide a page header if there is no record(details section) on last page. Page header must be shown on last page if there is some data on last page otherwise hide the page header.

Formaula pagenumber = totalpagecount won't work as it will always suppress the last page's header.

Answer

paulmelnikow picture paulmelnikow · Nov 4, 2011

Put this formula in a suppressed field in the detail section:

WhilePrintingRecords;
Global BooleanVar finished;
finished := OnLastRecord

And make this the Suppress formula in the page header:

Global BooleanVar finished
  • Before finished is initialized the page header will show.
  • Once you print a detail record it'll be set to false.
  • When you finally reach the last detail section, finished is set to true.
  • If you happen to reach another page header, finished is still true, and Crystal will suppress the header.

It's an interesting problem. I've encountered this behavior before but never tried to solve it. I think you need to use a variable because in a page header, the usual options like Next() and OnLastRecord can't distinguish between having one more record to print and having no more records to print. I think running totals would have the same problem – the values would be the same on a page with one more record to print, and on a page with no records to print.