Add repeating headers to a child Mini Page

If you add a Mini Page with a header as a child of the Page Root (or of another Mini page), there are specific Layout Node properties to set. The values you choose impact whether or not the child Mini Page uses existing space on the current page.

Most reports have a report header and report footer on the top-most Mini Page, typically called the Page Root.

Within the report, however, you may have lists that require their own header. To create these, you add Mini Pages as children of that Page Root and specify the header in these child Mini Pages.

For example, imagine a report that details information about customers. For each customer, you provide order detail with a list of all items for each order. Each order would use a Mini Page to provide the item list for that order and the column headers for the items. If the items do not fit on the existing page, you expect the list to continue on the next page after repeating the column headers. You will see examples of this type of report later in this topic.

The values you set for the child Mini Page properties will impact where the Mini Page starts. Your choices:

  • Have the Mini Page (header and detail) start on the existing page, even when there is not enough space to fit all the detail.

    With this option, the Mini Page starts printing on the current page, regardless of whether all the rows of the list fit. When the end of page is reached, the header repeats on the next page and the detail continues.

    To format this report, see Using all available space on page.

  • Have the Mini Page (header and detail) start on the next page when (and only when) there is not enough space to fit all of the detail.

    With this option, the Report Engine computes whether it can fit the complete Mini Page into the space that remains on the page. If it can, then it prints it on the existing page. If it cannot, then it starts on the next page; any space remaining on the existing page is left blank. If the detail still requires a second page despite starting on a new page, then the header repeats on the next page and the detail continues.

    To format this report, see Printing all detail on a single page when possible.

Using all available space on page

To have the report use as much space as possible on the first page by printing the section header and as much detail as will fit, then repeat the section header when it continues on the second page, you must set some properties.

  1. Locate the Mini Page within the Page Root (or another Mini Page) that requires a header or footer.
  2. Add the header or footer container to a Mini Page in the report.
    You can use any simple container or drawable; a Vertical Box (Layout Node) is most commonly used.
  3. Set the container's Section property to anyPageHeader.
  4. Set the Layout Node's properties:

Example: Using all available space on page

In this example, the report prints as many orders as it can on the current page by printing the column headers and as many detail rows as would fit, then after the page break to continue printing the remainder of the list after reprinting the column headers.

To achieve this layout, set the Y-Size to "rest" and the Y-Size Adjustment to "shrinkToChildren".
Figure: Report Properties


When examining this report output, note that the header and detail for Order Id 5 starts on page 1 and then continues on page 2.

Figure: Sample report using repeating headers








Printing all detail on a single page when possible

To have the report move the section header and its detail to a new page when it will not completely fit on the existing page, you must set some properties.

  1. Locate the Mini Page within the Page Root (or another Mini Page) that requires a header or footer.
  2. Add the header or footer container to a Mini Page in the report.
    You can use any simple container or drawable; a Vertical Box (Layout Node) is most commonly used.
  3. Set the container's Section property to anyPageHeader.
  4. Set the Layout Node's properties:
    Note:

    This same behavior will occur if you set the Y-Size to "min".

Example: Printing all detail on a single page when possible

In this example, the report moves the section header and all its detail to a new page if it does not fit on the existing page.

To achieve this layout, set the Y-Size to "max" and the Y-Size Adjustment to "shrinkToChildren. This same behavior will occur if you set the Y-Size to "min".
Figure: Report Properties


When examining this report output, note that the header and detail for Order Id 1 starts on a new page (page 2) despite space existing on page 1.

Figure: Sample report using repeating headers