-
Notifications
You must be signed in to change notification settings - Fork 204
Page Headers and Footers
Reports have five vertical bands. Understanding which band to use for which content is key to getting the right output.
| Band | Appears | Typical content |
|---|---|---|
| Report Header | Once, at the very start of the report | Cover page, title, run date |
| Page Header | Top of every page | Company logo, report title, column headings |
| Body | Repeating data area | Tables, lists, charts |
| Page Footer | Bottom of every page | Page numbers, confidentiality notice, print date |
| Report Footer | Once, at the very end of the report | Grand totals, signature blocks |
By default, new reports have only a body. To add a header or footer:
- In the designer, go to Report → Page Header (or Page Footer) to toggle the band on.
- The band appears above or below the body on the design surface.
- Drag items from the toolbox into the band — Textbox, Image, Line, etc.
To add a Report Header or Report Footer, use Report → Report Header / Report Footer.
Use the built-in globals in any expression inside a page header or footer:
={@PageNumber} simple page number: 1, 2, 3 …
={@TotalPages} total page count
="Page " & {@PageNumber} & " of " & {@TotalPages}
Place a Textbox in the page footer, set its Value expression to the formula above, and align it right for a standard footer.
To restart page numbering at 1 for each group (e.g. each customer in a multi-customer report):
- Select the group in the table's grouping properties.
- Set NewSection to
Trueon the group — this inserts a page break and resets{@PageNumber}.
="Printed: " & Format({@ExecutionTime}, "yyyy-MM-dd HH:mm")
="As of " & Format(Today(), "MMMM d, yyyy")Set the Hidden expression on a header or footer item to conditionally hide it:
' Hide on the first page (cover page has its own header)
=IIf({@PageNumber} = 1, True, False)
' Show only on the last page
=IIf({@PageNumber} < {@TotalPages}, True, False)To suppress the entire page header or footer on the first or last page, use the band's own PrintOnFirstPage and PrintOnLastPage properties (accessible via the band's property panel).
- In the designer, add an Image item to the page header band.
- Set the image Source to
Embeddedand upload your logo file, or set Source toExternaland provide a file path or URL. - Set Sizing to
FitProportionalto scale without distortion. - Resize the image item to the desired logo dimensions.
See Images in Reports for full image configuration options.
If your report body contains a Table, the table's column heading row automatically repeats on every page — this is built into the Table data region and does not require a page header. To enable it:
- Right-click the heading row of the table.
- Open Row Properties.
- Set RepeatOnNewPage to
True.
Use the page header band for content that sits outside the table (report title, logo, run date).
Drag the bottom edge of the header or footer band to resize it. Ensure the body height plus header and footer heights do not exceed PageHeight − TopMargin − BottomMargin, or the engine will overflow to an extra page.
Place three Textboxes side by side in the page footer:
| Left | Centre | Right |
|---|---|---|
=Format({@ExecutionTime}, "yyyy-MM-dd") |
={@ReportName} |
="Page " & {@PageNumber} & " of " & {@TotalPages} |