JFR9FlowControlOperations

FlowControl-Operations

The contents of the global data-row are controlled by FlowControlOperations. These operations can be executed before or after the element has been processed.

Advance

The advance operation prepares the movement of the cursor of the currently active primary table to the next row. Advance does not actually move the cursor. The actually move operations is done by the 'commit' operation later. Multiple advance operations have the same effect as a single advance call.

If the advancable layout element is also a repeatable element, the defalut layout controller implementations will perform a conditional commit at the end of that element processing. If the commit would not suceed, the advance request is ignored and the element will no longer be repeated.

If a repeatable element or one of its children does not contain an advance command, the commit is ignored and the element will not be repeated.

Commit

The commit unconditionally moves the cursor to the next row on non repeatable elements. If no advance request is pending, the commit is ignored.

Mark

The mark operation stores the current cursor position on the mark-stack. The position can be restored later by calling 'recall'. The 'done' operation allows to discard mark-contexts.

By using 'mark/recall/done', it is possible to create even the most complex reports with non-linear structures. Mark/recall constructs make it easy to create alternative views over the data.

Reports and subreports always open a new mark-context. it is not possible to use multiple 'done' or 'recall' calls to break out of these report contexts.

Done

The 'done' command closes a mark-context without moving the cursor.

Recall

Restores a cursor position, which has been previously stored by the 'mark' command.