Skip to content

Body, groups and bands

The banded report body, iterated over one dataset:

reportHeader
pageHeader (every page)
group[0].header
group[1].header
detail (every row)
group[1].footer
group[0].footer
reportFooter
pageFooter (every page)
noData (instead of all the above but page header/footer, when there are no rows)

A template that declares no data (a letter, a form) has no rows to miss: its report header, detail and report footer appear once, and noData never does.

Type: text

Dataset to iterate. May be omitted when the template declares exactly one.

Type: expression

Keeps only the rows for which this is true.

Type: list of sort key

Row order. Groups do not sort implicitly; sort by the group keys first.

Type: list of object

Bands at the start of the report.

Type: list of object

Bands at the top of every page, evaluated with the first row on the page.

Type: list of object

Nested groups, outermost first.

Type: list of object

Bands repeated for every row.

Type: list of object

Bands at the end of the report; aggregates here cover every row.

Type: list of object

Bands at the bottom of every page, evaluated with the last row on the page.

Type: list of object

Bands shown instead of the body when there are no rows.

Consecutive rows with the same key, with a header and footer. Each entry of body.groups, outermost first:

Type: text · Required

Also the name by which expressions read the current group key, and the aggregate scope.

Type: expression · Required

The group key: a new group starts where it changes.

Type: list of object

Bands before each group’s rows.

Type: list of object

Bands after each group’s rows; aggregates here cover the group.

Type: true or false · Default: false

Repeat the header at the top of a page when the group continues across a break.

Type: true or false · Default: false

Try to keep the whole group on one page.

Type: keyword · Default: none

Starts groups on a new page.

One of:

  • none
  • before
  • between

Type: true or false · Default: false

Restarts page numbers at 1 for each group.

A horizontal section of the report. Its text style properties are inherited by its elements. Every band list (reportHeader, detail, a group’s header…) holds these. Bands also have the style properties.

Type: text

An optional name, for people and tools.

Type: text

A named style for the band.

Type: keyword · Default: column

One of:

  • column: Children stack top to bottom at full width (default).
  • row: Children sit side by side; widths in pt, %, fr or auto.
  • absolute: Children are placed at x/y, as in JasperReports, RDLC and Crystal. Used by importers.

Type: length

Fixed height. When omitted the band is as tall as its content.

Type: length

Minimum height; the band still grows to fit its content.

Type: length

Space between children in column and row layouts.

Type: expression

Leaves the band out where this is false.

Type: true or false · Default: false

Do not split this band across pages; move it to the next page instead.

Type: true or false · Default: false

Never leave this band as the last thing on a page (useful for headers).

Type: keyword · Default: none

Starts a new page before or after the band.

One of:

  • none
  • before
  • after

Type: text

Text template for a PDF outline entry pointing at this band.

Type: list of element

The elements of the band.