In der DATA DIVISION muss mit einer Dateierklärung (FD) eine Ausgabedatei deklariert werden, in die die erzeugten Listen geschrieben werden sollen. Die Dateierklärung enthält auch die Namen der Listen (siehe „REPORT-Klausel").
Als letztes Kapitel der DATA DIVISION muss die REPORT SECTION angegeben werden, in der die Listen bezüglich ihrer Formate und Informationsversorgung beschrieben werden. Dieses Kapitel enthält zweierlei Eintragungen:
Die Listenerklärung (RD)
Sie muss den Namen der Liste enthalten. Ein Seitenformat (PAGE LIMIT-Klausel), ein Zeichen (CODE-Klausel), das jeder Zeile der Liste zur Trennung von verschiedenen Listen vorangestellt wird (darf allerdings nicht gedruckt werden), und eine Hierarchie von Gruppenwechseldatenfeldern (CONTROL-Klausel) können hier ebenfalls angegeben werden.Die Leistenerklärung
In ihr werden unter anderem die Druckfelder der Leiste beschrieben, das sind Datenfelder mit Zeilen- und Spaltenpositionierung, die mit Information direkt (VALUE) oder indirekt (Sendefeld, Summen) versorgt werden.
In der Listenerklärung wird durch die Angabe der Zeilenzahl pro Seite und der Zeilennummern als Grenze von leistenspezifischen Zonen das Seitenformat bestimmt. Mit diesen Angaben wird bei der Erstellung der Liste die Positionierung der verschiedenen Leisten gesteuert.
Die Angabe von Gruppenwechseldatenfeldern in ihrer hierarchischen Rangordnung hat den Zweck, die Postenleisten zu strukturieren.
Die Postenleisten, die funktionell mit den hierarchischen Begriffen verknüpft sind, werden so in der Reihenfolge ihrer Erstellung zu einzelnen Gruppen zusammengefasst, dass allen Postenleisten einer Gruppe derselbe Wert des hierarchisch niedrigsten Begriffes zukommt. Je nachdem, ob für diese hierarchische Stufe ein Gruppenkopf und/oder ein Gruppenfuß definiert ist, wird jede Gruppe mit dem Gruppenkopf eingeleitet und mit dem Gruppenfuß abgeschlossen. Der Gruppenfuß enthält im Allgemeinen Information, die sich nur auf die Gruppe beschränkt, z.B. Zwischensummen.
Ganz analog zu den Postenleisten wird, wenn ein weiterer hierarchischer Begriff vorliegt, die oben beschriebene Gruppe von Postenleisten ihrerseits in Gruppen zusammengefasst, wobei jetzt der hierarchisch nächsthöhere Begriff maßgebend ist, usw.
Diese Strukturierung wird vom Listenprogramm folgendermaßen erzeugt:Vor der Erstellung einer Postenleiste testet das Listenprogramm die Gruppenwechseldatenfelder in ihrer hierarchischen Reihenfolge von oben nach unten. Sobald das Listenprogramm eine Wertänderung, d.h. einen Gruppenwechsel feststellt, werden zuerst alle vorhandenen Gruppenfüße in der hierarchischen Rangfolge von unten nach oben bis zur Stufe mit der zuerst festgestellten Wertänderung erstellt, dann alle vorhandenen Gruppenköpfe von derselben Stufe in umgekehrter hierarchischer Rangfolge und zuletzt die Postenleiste selbst.
Durch die Angabe von Gruppenwechseldatenfeldern in Verbindung mit den Leisten Gruppenkopf und Gruppenfuß hat der Programmierer die Möglichkeit, sich die Liste strukturiert erstellen zu lassen.
Die Leistenerklärung, die formal einer Satzbeschreibung gleicht, beschreibt die Eigenschaften aller Datenfelder der Liste. Über den Rahmen der in COBOL üblichen Beschreibungselemente für ein Datenfeld hinaus wird einem Listendatenfeld Zeile und Spalte, also eine Seitenposition zugeordnet, d.h. das Datenfeld wird zu einem Druckfeld erklärt. Jedes dieser Felder wird mit einer Information versorgt.
Drei Arten der Informationsversorgung sind möglich:
Die SOURCE-Information (Quellinformation der SOURCE-Klausel), die über ein Datenfeld zur Verfügung steht, das außerhalb der REPORT SECTION definiert ist.
Die SUM-Information (Summeninformation der SUM-Klausel) als Additionsergebnis von Daten, die ihrerseits wieder SOURCE-Information und/oder SUM-Information darstellen.
Die VALUE-Information (Wertinformation der VALUE-Klausel) als konstant festgelegter Informationswert.
Da eine Liste mehrere Arten von Leisten enthalten kann, enthält die Leistenbeschreibung eine Angabe über den Typ der Leiste. Die sieben möglichen Typen sind in Tabelle 38 aufgezeigt.
Mit der Listen- und allen zugehörigen Leistenerklärungen ist die Liste dem Format und dem Inhalt (einschließlich der nötigen Summationsoperationen) nach vollständig beschrieben, d.h. die Voraussetzungen für die Erzeugung der Liste sind abgeschlossen.
Typ |
Definition |
REPORT HEADING |
Die Leiste wird pro Liste nur einmal erstellt und zwar als erste Leiste der Liste. |
REPORT FOOTING |
Diese Leiste bildet die Schlussleiste einer Liste und darf daher pro Liste nur einmal gedruckt werden. |
PAGE HEADING |
Diese Leiste wird als erste Leiste einer Seite geschrieben; Ausnahme:
|
PAGE FOOTING |
Diese Leiste wird als letzte Leiste einer Seite geschrieben; Ausnahme: |
DETAIL |
Diese Leiste muss als einziger Leistentyp in einer GENERATE-Anweisung angegeben werden, um überhaupt erzeugt zu werden. Jede Ausführung dieser Anweisung erzeugt zur Ablaufzeit die angegebene Postenleiste. |
CONTROL HEADING |
Diese Leiste wird als Kopfleiste für eine Gruppe von Postenleisten infolge eines Gruppenwechsels erzeugt. |
CONTROL FOOTING |
Diese Leiste wird als Fußleiste für eine Gruppe von Postenleisten infolge eines Gruppenwechsels erzeugt. Sie enthält zumeist Summen überDaten, die die vorausgehende Gruppe von Postenleisten betreffen. |
Tabelle 38: Leistentypen der Leistenbeschreibung einer Liste