Page Breaking In SQR
The page breaking functionality in SQR is really one of the most useful features in the language. The power of the page breaking functionality (
on-break) is that you can break as required while processing rows being returned in a
So this means you can simply order the data selected out of the database and page-break as required rather than having to check for complex page break conditions manually using variables to store the last value(s) processed.
The key to the
on-break code is the
level parameter which is essentially acts a priority (level 1 is the first priority, then level 2, then level 3 and so on).
For example, here's a snippet of code used to break based on three selected columns:
begin-select CRSE_ID () on-break level=1 print=never CAMPUS () on-break level=2 print=never ACAD_GROUP () on-break level=3 print=never before=Print-New-Page() . . . end-select
In this example, it will break in order of level priority, that is first on on a change to
CRSE_ID, then on a change to
CAMPUS and third on a change to
Note the procedure call to
Print-New-Page() is made using the before keyword which means that the break happens before the next row change in ascending order of break levels. That is, the
Print-New-Page procedure will happen before the change in data for a new