Funktion
Indizes werden verwendet, wenn innerhalb einer Tabelle auf ein einzelnes Element zugegriffen werden soll (siehe Abschnitt „OCCURS-Klausel").
Format 1
beschreibt Indizierung ohne Kennzeichnung.
{datenname-1 | bedingungsname} ({index-1 [{+ | -} ganzzahl]}... )
Format 2
beschreibt Indizierung mit Kennzeichnung.
{datenname-1 | bedingungsname} [{IN | OF} datenname-2]
[{IN | OF} dateiname]
({index-1 [{+ | -} ganzzahl]}... )
Erklärung und Regeln der Kennzeichnung siehe Abschnitt „Kennzeichnung".
Syntaxregeln für beide Formate
datenname-1 ist der Name eines Tabellenelements.
Ist bei datenname-1 index angegeben, muss entweder die Datenerklärung von datenname-1 eine OCCURS-Klausel mit INDEXED BY index enthalten, oder datenname-1 muss einer Gruppe untergeordnet sein, die mit der OCCURS-Klausel mit INDEXED BY index beschrieben ist.
Zum Beispiel besagt die Bezugnahme
TOTAL (INDEXA, INDEXB),
dass TOTAL zu einer Struktur mit zwei Stufen von OCCURS-Klauseln gehört, deren jede eine INDEXED BY-Angabe enthält.
Der Index ist eingeschlossen in Klammern. Die öffnende Klammer folgt unmittelbar den Leerzeichen nach dem Namen des Tabellenelements (datenname). Tritt mehr als ein Index in einem Klammerpaar auf, können die Indizes entweder durch Kommas getrennt werden, denen mindestens ein Leerzeichen folgt, oder nur durch Leerzeichen.
Verwendet man die
+
ganzzahl-Angabe oder die-
ganzzahl-Angabe, müssen vor und hinter den Zeichen+
oder-
Leerzeichen vorhanden sein.Die Indizes werden in der Reihenfolge von der äußersten zur innersten Tabelle geschrieben.
Die niedrigste erlaubte Tabellenelementnummer für einen Index ist 1, die höchste ist in jedem einzelnen Fall die Maximalzahl der Wiederholungen des Datenfeldes. Die Maximalzahl ist in der OCCURS-Klausel festgelegt. Dies gilt auch für relative Indizierung.
Durch Bezugnahme auf ein Tabellenelement oder auf ein Feld innerhalb eines Tabellenelements wird der mit dieser Tabelle verbundene Index nicht verändert.
Durch Einsetzen der relativen Indizierung werden die Werte der Indizes im Zielprogramm nicht verändert.
Allgemeine Regeln für beide Formate
Die Werte von Indizes können ohne Konvertierung in Datenfelder gespeichert werden (SET-Anweisung), deren Erklärung die USAGE-Klausel mit INDEX-Angabe enthält. Diese Datenfelder heißen dann Indexdatenfelder (siehe „USAGE-Klausel“ und „SET-Anweisung“).
Ein Index kann nur durch eine SET-, SEARCH- oder PERFORM-Anweisung verändert werden (siehe Beschreibungen dieser Anweisungen).