Ein Tabellenelement wird in der Datenerklärung durch Angabe der OCCURS-Klausel gekennzeichnet. Mit der OCCURS-Klausel wird festgelegt, wieviele Tabellenelemente die Tabelle umfasst. Name und Beschreibung des Tabellenelements gelten für jede Wiederholung. Bei einer mehrdimensionalen Tabelle muss für jede Dimension in der hierarchischen Ordnung eine OCCURS-Klausel angegeben sein.
Beispiel 2-13
01 TABELLE. 02 TABELLEN-ELEMENT PIC XXX OCCURS 20 TIMES.
Das Datenfeld TABELLE umfasst 20 gleichgroße Datenfelder.
Diese Felder heißen TABELLEN-ELEMENT:
TABELLE: 1. TABELLEN-ELEMENT (1) PIC XXX. 2. TABELLEN-ELEMENT (2) PIC XXX. . . . 20. TABELLEN-ELEMENT (20) PIC XXX.
Eindimensionale Tabellen
In der Datenbeschreibung des Tabellenelements wird die OCCURS-Klausel angegeben.
Beispiel 2-14
01 TABELLE. 02 TABELLEN-ELEMENT OCCURS 2 TIMES. 03 ELEMENT-FELD-1 PIC X(4). 03 ELEMENT-FELD-2 PIC X(4).
TABELLE ist der Name der Tabelle.
TABELLEN-ELEMENT ist das Element der eindimensionalen TABELLE, das zweimal auftritt.
ELEMENT-FELD-1 und ELEMENT-FELD-2 sind Elemente, die TABELLEN-ELEMENT untergeordnet sind.
Mehrdimensionale Tabellen
Ist ein Datenfeld dem Tabellenelement einer zweidimensionalen Tabelle untergeordnet und enthält es eine OCCURS-Klausel, so ist dieses Datenfeld Element einer dreidimensionalen Tabelle.
Für eine Tabelle sind maximal sieben Dimensionen erlaubt.
Beispiel 2-15
01 TABELLE. 02 BLK OCCURS 2 TIMES. 03 SATZ OCCURS 2 TIMES. 04 FELD OCCURS 2 TIMES PIC X(10).
BLK ist ein Element einer eindimensionalen Tabelle, das zweimal auftritt.
SATZ ist ein Element einer zweidimensionalen Tabelle, das zweimal innerhalb eines jeden Auftretens von BLK auftritt.
FELD ist ein Element einer dreidimensionalen Tabelle, das zweimal innerhalb eines jeden Auftretens von SATZ auftritt.
TABELLE |
BLK (1) |
SATZ (1, 1) |
FELD (1, 1, 1) |
FELD (1, 1, 2) |
|||
SATZ (1, 2) |
FELD (1, 2, 1) |
||
FELD (1, 2, 2) |
|||
BLK (2) |
SATZ (2, 1) |
FELD (2, 1, 1) |
|
FELD (2, 1, 2) |
|||
SATZ (2, 2) |
FELD (2, 2, 1) |
||
FELD (2, 2, 2) |
Bild 3: Darstellung von TABELLE
Anfangswerte von Tabellenelementen
Eine VALUE-Klausel darf in einer Datensatzbeschreibung mit OCCURS-Klausel oder einer ihr untergeordneten Datensatzbeschreibung enthalten sein. Für die Definition von Bedingungsnamen ist die VALUE-Klausel auch hier erlaubt und notwendig.
Mit Hilfe der VALUE-Klausel können in der WORKING-STORAGE SECTION oder LOCAL-STORAGE SECTION Anfangswerte einer Tabelle angeben werden.
Beispiel 2-16
WORKING-STORAGE SECTION. ****** 1. VALUE-ANGABE AUF GRUPPENEBENE ****** 01 WOCHE VALUE "MONTAG DIENSTAG MITTWOCH DONNERSTAG "FREITAG SAMSTAG SONNTAG ". 02 TAG PIC X(10) OCCURS 7 TIMES. ****** 2. VALUE-ANGABE IN DER OCCURS-KLAUSEL ****** 01 WEEK. 02 WDAY PIC X(10) OCCURS 7 TIMES VALUE FROM (1) "MONDAY" "TUESDAY" "WEDNESDAY" "THURSDAY" "FRIDAY" "SATURDAY" "SUNDAY". ****** 3. VALUE-ANGABE IN EINEM DER OCCURS-KLAUSEL UNTERGEORDNETEN FELD ***** 01 UGE. 02 FILLER OCCURS 7 TIMES. 03 DAG PIC X(10) VALUE FROM (1) "MANDAG" "TISDAG" "ONSDAG" "TORSDAG" "FREDAG" "LOERDAG" "SOENDAG".
Bezugnahmen auf Tabellenelemente
Die Tabellenelemente einer Tabelle haben denselben Datennamen. Man unterscheidet die Tabellenelemente dadurch, dass man die in Klammern eingeschlossenen Tabellenelementnummern (Indizes) hinter dem Datennamen einfügt.
Beispiel 2-17
01 TABELLE. 02 ELEMENT OCCURS 10 TIMES. . . . MOVE ELEMENT OF TABELLE (8) TO ...
Hierbei wird auf das achte Tabellenelement zugegriffen.
Für jede Dimension muss eine Tabellenelementnummer angegeben werden.
Es gibt zwei Techniken, Tabellenelemente anzusprechen:
Subskribierung
Indizierung