1.9.2 Das Cobol-Stufenkonzept:
Datensätze werden mit der Stufennummer 01 oder 77 beschrieben.
Die Stufennummer 77 gibt an, daß der Datensatz keine weitere Unterteilung besitzt.
Überdefinition :
| | | | | |
Format:
Format der Oberdefinition:
{
[01 Cobolname [PIC Picture] [VALUE Konstante]].
/
[77 Cobolname PIC Picture [VALUE Konstante]].
}
| |
| | | |
Wird die PIC-Klausel nicht angegeben, berechnet der Compiler die Länge aus den folgenden Unterdefinitionen, und weist dem Feld den alphanumerischen Typ (PIC X(Länge)) zu.
Die Angabe der VALUE-Klausel (siehe VALUE) initialisiert das Feld mit dem angegebenen Wert.
Unterdefinitionen :
Während die Stufe 01 einen Datensatz in seiner vollen Länge beschreibt, dienen die Stufen 02 - 49 zur Unterdefinition bzw. Untergruppierung des Datensatzes.
Die niedrigen Stufennummern fassen hierbei alle höheren Stufennummern zu einer Gruppe zusammen.
Beispiel :
In einem Datensatz sollen Kundenname und Kundenadresse abgespeichert werden.
01 K-SATZ PIC X(109).
05 K-NAME PIC X(30).
05 K-TELEFON PIC X(14).
10 K-VORWAHL PIC 9(5).
10 K-NUMMER PIC X(9).
05 K-PLZ PIC 9(5).
05 K-ORT PIC X(30).
05 K-STRASSE PIC X(30).
K-SATZ besteht aus 109 Charaktern. Die ersten 30 beinhalten den Namen, die nächsten 14 die Telefonnummer, die nächsten 5 die Postleitzahl usw.
Die Einrückung der Stufennummer dient nur der Lesbarkeit und ist nicht zwingend.
Zur Unterstufendefinition kann eine beliebige, größere Stufennummer verwendet werden - nach Stufe 01 muß also nicht Stufe 02 folgen.
Im Beispiel ist K-SATZ mit der Stufe 05 unterdefiniert. Hiervon ist das Feld K-TELEFON mit der Stufe 10 untergliedert (beliebige Stufennummer von 6 - 49).
Nach der Beschreibung der Unterdefinitionen von K-TELEFON, wird nun die vorherige Beschreibung fortgesetzt, d.h. es muß eine bereits gewählte kleinere Stufennummer verwendet werden. Soll die Unterdefinition von K-SATZ nach K-TELEFON fortgesetzt werden, muß Stufennummer 05 verwendet werden.
Die Angabe der Stufennummer 06 oder Stufennummer 04 würde als Eintrag nach K-NUMMER zu einem Syntax-Fehler führen.
Jedem Feld kann, bei korrekter Angabe, eine relative Position im Datensatz, die Länge und der Datentyp zugeordnet werden:
|
Cobolname | Byteposition | Länge | Typ | K-SATZ | 1 | 109 | alphanumerisch | K-NAME | 1 | 30 | alphanumerisch | K-TELEFON | 31 | 14 | alphanumerisch | K-VORWAHL | 31 | 5 | numerisch | K-NUMMER | 36 | 9 | alphanumerisch | K-PLZ | 45 | 5 | numerisch | K-ORT | 50 | 30 | alphanumerisch | K-STRASSE | 80 | 30 | alphanumerisch |
|
Sollen nur bestimmte Bereiche einer Unterdefinition beschrieben werden, kann der vordefinierte Cobolname FILLER verwendet werden.
Beispiel :
05 FELD1 PIC X(7) VALUE '123/345'.
10 FELD2 PIC 9(3).
10 FILLER PIC X.
10 FELD3 PIC 9(3).
Hier werden die 2 numerischen Bereiche von Feld1 unterdefiniert.
Wird in der Oberdefinition eine Länge angegeben, so muß die Summe der Unterdefinitionslängen dieser Länge entsprechen.
Wird in der Oberdefinition keine Länge angegeben, ergibt sich die Länge aus der Summe der Unterdefinitionen, es kann dann jedoch keine VALUE-Anweisung in der Oberdefinition angegeben werden.
Das obige Beispiel könnte also auch so aussehen:
05 FELD1.
10 FELD2 PIC 9(3) VALUE 123.
10 FILLER PIC X VALUE '/'.
10 FELD3 PIC 9(3) VALUE 345.
Zurück zu Picture
Hoch zu Die Datenbeschreibung in Cobol
Weiter zu Kompletter Stufensyntax:
|