Using a page number string

For Page Number containers, use the Text Expression property to create a page number string, such as the standard "Page N of M".

If you set the Text Expression property, it is important to verify that the Page Number container length is long enough to print the full page number text. The size of the string depends in part on the number of page breaks in the report. For example, the string "Page 2 of 5" has a smaller length than "Page 2 of 76".

Because of the unpredictable variation in size, Genero Report Writer defaults to a container size based on a four digit current page and total number of pages ("Page 9999 of 9999"). To override the default behavior you can set the X-Size to an explicit size or specify a smaller size with the Text property (for example "Page 99 of 99").

The values of the Name (pageName), Offset (pageNoOffset), and Format (pageNoFormat) properties are ignored when the Text Expression property is set.

These functions can be used to format and access specific page numbers and totals.

  • Class String: format(Numeric number, Enum format) - formats the number as ARABIC, LOWERROMAN, or UPPERROMAN
  • Class Numeric: getPhysicalPageNumber()
  • Class Numeric: getTotalNumberOfPhysicalPages()
  • Class Numeric: getPageNumber(String pageName)
  • Class Numeric: getTotalNumberOfPages(String pageName)
    Note:

    If you use the functions getTotalNumberOfPhysicalPages() or getTotalNumberOfPages() and if printing is initiated from the viewer, report pages waiting to be updated with the actual page count will be held back.

Examples

This expression computes the string "Page N of M" for the physical pages:

"Page "+format(getPhysicalPageNumber(),ARABIC)+" of "+format(getTotalNumberOfPhysicalPages(),ARABIC)

This expression computes the string "Page N of M" for logical pages, providing page numbers for each order within a batch of several orders:

"Page "+format(getPageNumber("pageRoot"),ARABIC)+" of "+format(getTotalNumberOfPages("pageRoot"),ARABIC)

Because the Offset property is ignored when Text Expression is set, you may want to add an offset to the Text Expression formula. For example, this expression starts the page numbering at 11:

"Page "+format(getPageNumber("pageRoot")+10,ARABIC)+" of "+format(getTotalNumberOfPages("pageRoot")+10,ARABIC)