Headers, Footers, and Break Frames
Report components (and form components intended for printing) can have headers and footers that appear at the top and bottom of printed pages, and inline headers or page breaks. These are defined using header frames, footer frames, and break frames.
Header, footer, and break frames can contain labels and fields, so they can be used to print titles, column headings, date and time, page numbers, subtotals and totals, or to suppress printing.
Each frame has a getFocus trigger that can be used to provide values for the fields displayed in the frame, such as the data and time or current page number.
Header and Footer Frames
A component can only have one header and one footer frame, and each frame is printed exactly as it has been drawn.
If defined, header and footer frames are automatically printed on each page. They have no connection with the database and have no relationship with any of the entities drawn on the report. These frames only contain information that is not directly retrieved from the database, so they cannot contain entity frames.
Unlike component fields, fields in headers or footers frames do not expand when printing.
Break Frames
Break frames are defined at the bottom of the component but are only inserted in the report output by the printbreak ProcScript statement in the entity's getFocus trigger or leavePrinted trigger.
Break frames are printed only when an event occurs. Unlike header and trailer frames, they can include information that is related to the data. Break frames can be used to conditionally include information in a report, such as messages that depend on the number of occurrences retrieved, totals and subtotals, or for displaying front or back pages. If an entity has no occurrences, you can suppress the entity and print a break frame instead.
It is not possible to draw an entity frame below a page break or trailer frame. A trailer frame must be painted as the last frame.