Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Funktion 1 des CBL-CTR-Sonderregisters

&pagelevel(4)&pagelevel

Funktion 1 wird durch die MOVE-Anweisung mit 1 (oder 3) in das CBL-CTR-Sonderregister hervorgerufen.
Sie besteht aus zwei Teilen, deren Aktionen im Folgenden beschrieben sind.

  1. Zuweisung der alten Werte der Gruppenwechseldatenfelder in Gruppenfüße

    Teil 1 der Funktion 1 stellt die alten Werte aus den Gruppenwechseldatenfeldern für SOURCE-Klauseln oder USE BEFORE REPORTING-Prozeduren von Gruppenfüßen zur Verfügung.

    SOURCE-Klauseln (oder USE BEFORE REPORTING-Prozeduren) von Gruppenfüßen, die sich auf Gruppenwechseldatenfelder beziehen, führen zu Schwierigkeiten. Zu dem Zeitpunkt, zu dem die Gruppenfüße erstellt werden, haben einige oder alle Gruppenwechseldatenfelder geänderte Werte. Da jedoch sinngemäß die Gruppenfüße, die infolge eines Gruppenwechsels erstellt werden, zu den Werten vor dem Gruppenwechsel gehören, ist es oft wünschenswert, dass die Werte vor dem Gruppenwechsel (alte Werte) gedruckt werden. Wenn die Funktion 1 des CBL-CTR-Sonderregisters angefordert wurde, werden diese alten Werte aus den Gruppenwechseldatenfeldern für SOURCE-Klauseln (oder USE BEFORE REPORTING-Prozeduren) von Gruppenfüßen geliefert.

    Wenn z.B. das Datenfeld MONATS-NAME als Gruppenwechseldatenfeld der Liste definiert ist und der Gruppenfuß MONATS-FUSS mit

    01 MONATS-FUSS TYPE CONTROL FOOTING
                          MONATS-NAME LINE PLUS 1.
       02 COLUMN 10 PIC X(21) VALUE "***** DATEN-ENDE FUER"
       02 COLUMN 33 PIC X(9)  SOURCE MONATS-NAME.
    

    definiert ist, dann wünscht der Programmierer, dass, nachdem alle Daten für den JANUAR in Postenleisten gedruckt sind, der abschließende Gruppenfuß

    ***** DATEN-ENDE FUER JANUAR

    ausgedruckt wird. Da gerade die Änderung des Feldes MONATS-NAME von JANUAR auf FEBRUAR die Erstellung des obigen Gruppenfußes bewirkte, würde aber FEBRUAR statt JANUAR, also der laufende (aktuelle) Inhalt gedruckt werden. Falls aber die Funktion 1 angefordert ist, wird statt FEBRUAR der gewünschte Monat JANUAR ausgedruckt.

  2. Anzeige der hierarchischen Stufe des Gruppenwechsels

    im CBL-CTR-Sonderregister

    Teil 2 der Funktion 1 besteht darin, dass das Listenprogramm einen Wert, der die hierarchische Stufe des Gruppenwechsels anzeigt, im CBL-CTR-Sonderregister hinterlegt. Dies geschieht noch bevor eine USE BEFORE REPORTING-Prozedur zur Ausführung angesteuert wird. So eine Prozedur beginnt mit:

    kapitelname SECTION. USE BEFORE REPORTING leistenname.

    Die Anzeige der hierarchischen Stufe des aktuellen Gruppenwechsels wird dadurch erreicht, dass die Gruppenwechseldatenfelder von höchster hierarchischer Stufe aus durchnummeriert werden. FINAL wird dabei nicht berücksichtigt. So erhält der erste (ganz links stehende) Datenname der CONTROL-Klausel die Nummer eins, der nächste die Nummer zwei usw.

    Wenn z.B. in einer Listenerklärung die CONTROL-Klausel

    CONTROLS ARE FINAL LAND KREIS STADT

    vorliegt, dann wird LAND die Nummer 1, KREIS die Nummer 2 und STADT die Nummer 3 zugeordnet.

    Die Bedeutung der Werte des CBL-CTR-Sonderregisters in den USE-Prozeduren für den Seitenkopf und die Gruppenköpfe sind in Tabelle 41 aufgezeigt.

    Wenn sich im obigen Beispiel der Wert im Gruppenwechseldatenfeld KREIS ändert, dann legt das Listenprogramm den Wert 2 im CBL-CTR-Sonderregister ab (vorausgesetzt, dass sich der Wert von LAND nicht gleichzeitig geändert hat).

    Wert

    Bedeutung

    0

    zeigt an, dass keine GENERATE-Anweisung ausgeführt wurde oder dass gerade die erste GENERATE-Anweisung ausgeführt wird

    1-254

    zeigt an, dass das Gruppenwechselfeld mit der vorliegenden Nummer eine Wertänderung erfuhr, und dass die laufenden Aktionen durch diesen Gruppenwechsel verursacht sind

    255

    zeigt an, dass kein Gruppenwechsel auftrat (kann nicht bei USE-Prozeduren von Gruppenköpfen eintreten)

    Tabelle 41: Werte des CBL-CTR-Sonderregisters in USE-Prozeduren für Seitenköpfe und Gruppenköpfe

    Die Bedeutung der Werte des CBL-CTR-Sonderregisters in den USE-Prozeduren für den Seitenfuß und die Gruppenfüße sind in Tabelle 42 aufgezeigt.

    Wert

    Bedeutung

    0

    zeigt an, dass die Abschlussphase vorliegt, d.h. dass die TERMINATE-Anweisung eben ausgeführt wird

    1-254

    zeigt an, dass das Gruppenwechseldatenfeld mit der vorliegenden Nummer eine Wertänderung erfuhr und dass die laufenden Aktionen durch diesen Gruppenwechsel verursacht sind

    255

    zeigt an, dass kein Gruppenwechsel vorliegt (kann nicht bei USE-Prozeduren von Gruppenfüßen auftreten)

    Tabelle 42: Werte des CBL-CTR-Sonderregisters in USE-Prozeduren für Seitenfüße und Gruppenfüße