Inhalt
Index
Support Über uns
Home

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
Entwickler Portal Impressum AGB Kontakt


© 1980-2017 Acc Computertechnik GmbH All rights reserved.