1.9.3 Kompletter Stufensyntax:
Es folgt der Syntax für die Stufendefinitionen:
| | | | | |
Format:
Stufennummer(01-49) Cobolname1
[
{
[REDEFINES Cobolname2]
[PIC Picture]
[OCCURS Ganzzahl1 [TIMES]
[ TO Ganzzahl2 DEPENDING Feldname]
[ { ASCENDING / DESCENDING } KEY [IS] Keyname1 ...]
[INDEXED Indexname1 ...]]
[USAGE [IS]
{
[DATE [{ YEAR-LEFT / YEAR-RIGHT }]
[Storagetype]
[Controltype Attribute]
}
[BLANK [WHEN] ZERO]
[ { JUSITIFIED / JUST } [RIGHT]]
{
[VALUE [IS] Konstante]
[VALUE ALL Oktalkonstante]
}
}
].
| |
| | | |
Cobolname1 ist der Datenname für das beschriebene Feld. Die gültigen Attribute sind bei den entsprechenden Control- Elementen aufgeführt.
PIC
Picture ist eine gültige Beschreibung eines Datenfeldes, Siehe Picture
OCCURS
Die OCCURS-Klausel darf nur für Unterdefinitionen angegeben werden. Ganzzahl gibt den Wiederholungsfaktor der Definition an.
INDEXED
Indexname enthält bei Programmablauf den zuletzt verwendeten Indexwert der Definition.
Alle Unterdefinitionen einer indizierten Definition können mit diesem Index angesprochen werden:
Beispiel:
02 IFELD PIC X(20) OCCURS 5 INDEXED I1.
05 IU1FELD PIC X(5).
05 IU2FELD PIC X(5).
05 IU3FELD PIC X(5).
05 IU4FELD PIC X(5).
IFELD ist 4-mal unterdefiniert. IFELD (1) ist der 1. Bereich, IFELD (2) der 2. usw.
IU1FELD (1) sind die ersten 5 Bytes von IFELD (1), IU1FELD (2) sind die ersten 5 Bytes von IFELD (2) usw.
Indizierte Unterdefinitionen können ihrerseits wieder indiziert werden, z.B.
02 IFELD PIC X(20) OCCURS 5 INDEXED I1.
05 IUFELD PIC X(5) OCCURS 4 INDEXED I2.
Die Unterfelder müssen dann mit IUFELD (I1 I2) angesprochen werden, d.h. zuerst der höherwertige, dann der niederwertige Index.
IU3FELD (2) entspricht dann IUFELD(2 3).
Es sind bis zu 3 Indexstufen zulässig.
KEY
Um die indizierten Datenfelder einfach nach Werten zu durchsuchen, können Keyfelder angegeben werden, die in der SEARCH - Anweisung verwendet werden. Die Keyfelder müssen eine Unterstufe des indizierten Feldes sein.
ASCENDING DESCENDING
Gibt die Sortierreihenfolge (aufsteigend oder absteigend) der indizierten Felder an.
DEPENDING
Die Occurs - Angabe ist variable im Bereich von Ganzzahl1 bis Ganzzahl2. In Feldname befindet sich der aktuelle Maximalwert, der den oberen Grenzwert für den Index festlegt.
REDEFINES
Cobolname2 ist der Datenname eines bereits auf der selben Stufennummer definierten Feldes in der selben Gruppe.
Dieses bereits definierte Feld teilt sich den Datenbereich mit der neuen Definition:
Beispiel:
01 TAGE.
02 TAG1 PIC X(10) VALUE 'Montag'.
02 TAG2 PIC X(10) VALUE 'Dienstag'.
....
02 TAG7 PIC X(10) VALUE 'Sonntag'.
01 WTAGE REDEFINES TAGE.
02 WTAG PIC X(10) OCCURS 7 INDEXED ITAG.
Hier kann der Datenbereich mit dem Inhalt 'Dienstag' entweder mit TAG2 oder WTAG (2) angesprochen werden.
VALUE
Der definierte Datenbereich wird mit der angegebenen Konstante vorbesetzt.
VALUE ALL
Der Datenbereich wird mit dem angebenen Oktalwert gefüllt.
Beispiel:
02 LINEFEED PIC X VALUE ALL '<012>'.
Storagetype Siehe Datentypen
Controltype Siehe Controls
DATE
Spezielles Datenformat zur Darstellung eines Datums.
Die Jahreskomponente wird hierbei in folgender Form abge- speichert:
'00' - '99' entspricht 1900 - 1999 'A0' - 'A9' entspricht 2000 - 2009 'B0' - 'B9' entspricht 2010 - 2019 ... 'Z0' - 'Z9' entspricht 2250 - 2259
Zur Umwandlung stehen verschiedene Cobol-Calls zur Verfügung.
YEAR-LEFT
Mit YEAR-RIGHT (Defaultwert) bzw. YEAR-LEFT kann angegeben werden, wo sich das 2-stellige Jahresfeld befindet.
Beispiel:
Format: TT.MM.JJ
77 DATFELD PIC ZZ.ZZ.99B USAGE IS DATE.
oder mit Unterdefinition:
01 DATFELD PIC ZZ.ZZ.99B.
02 FILLER PIC X(6).
02 DATJAHR PIC 99 USAGE IS DATE.
02 FILLER PIC X.
oder bei Format JJTTT
77 DATMI PIC 9(5) USAGE IS DATE YEAR-LEFT.
BLANK ZERO
Wenn diese Felder 0 enthalten, werden sie mit Leerzeichen gefüllt. Wird zur Druck- oder Bildschirmausgabe verwendet und darf nicht bei rein numerischen Feldern verwendet werden. Werden bei RECEIVE-Befehlen BLANK ZERO-Felder angegeben, werden die Felder nur angezeigt und können nicht verändert werden.
JUSTIFIED
Mit dieser Angabe werden Alphafelder nicht von links nach rechts, sondern rechtsbündig abgestellt.
Zurück zu Das Stufenkonzept
Hoch zu Die Datenbeschreibung in Cobol
Weiter zu Stufe 88
|