CBL-CTR (Control Break Level Counter) ist ein Sonderregister, das für jede Liste, die in der REPORT SECTION der DATA DIVISION beschrieben ist, automatisch angelegt wird. Die interne Beschreibung dieses Sonderregisters ist in der COBOL-Schreibweise mit PICTURE S999 USAGE COMPUTATIONAL gegeben.
Das Listenprogramm und das Programm verwenden dieses Sonderregister, um Informationen über den Gruppenwechsel zu übergeben bzw. um Aktionen in Abhängigkeit eines Gruppenwechsels zu unternehmen.
Das CBL-CTR-Sonderregister kann in Verbindung mit zwei verschiedenen Funktionen verwendet werden. Es steht zur Wahl, die Funktionen überhaupt nicht, eine von beiden oder beide Funktionen pro Liste zu verwenden. Der Einfachheit halber seien die beiden Funktionen als Funktion 1 und Funktion 2 bezeichnet. Das Benutzerprogramm teilt dem Listenprogramm mit, welche Funktionen es für eine Liste erwartet. Durch eine MOVE-Anweisung wird das CBL-CTR-Sonderregister mit dem Wert belegt, der die geforderte Funktion symbolisiert. Wertbelegung und Funktion hängen wie folgt zusammen:
Geforderte Funktion |
MOVE-Anweisung |
Funktion 1 |
MOVE 1 TO CBL-CTR. |
Funktion 2 |
MOVE 2 TO CBL-CTR. |
Funktion 1 und 2 |
MOVE 3 TO CBL-CTR. |
Die entsprechende MOVE-Anweisung muss nach der INITIATE-Anweisung für die Liste, aber noch vor der (chronologisch) ersten GENERATE-Anweisung ausgeführt werden. Nur in diesem Zeitraum ist es dem Programmierer erlaubt, den Wert des CBL-CTR-Sonderregisters zu ändern.
Wenn in der REPORT SECTION mehrere Listen definiert sind, müssen alle Bezugnahmen auf CBL-CTR durch den Listennamen gekennzeichnet sein.