MIDRANGE 02/2016 - page 50

50
TECHNIK & INTEGRATION
MIDRANGE
MAGAZIN · 02/2016
CLICK TO
Der vollständige Artikel steht Abonnenten
des TechKnowLetters online zur Verfügung.
D-Bestimmungen – Teil 3
Eigenständige Felder
Etwa 90% aller Variablen oder Hilfsfelder werden als eigenständige Felder angelegt. Mithilfe
von zusätzlichen Schlüsselworten können die Variablen als Feldgruppe definiert und/oder
initialisiert werden. Ebenso ist es durch das Schlüsselwort LIKE möglich,Variablen und Feld-
gruppen wie andere Variablen zu definieren. Die Unterschiede bei der Definition von
eigenständigen Feldern im Fix- und im Free-Format werden in diesem Artikel aufgezeigt.
E
igenständige Felder werden in der
Free-Format-Codierung mit dem
Operation Code DCL-S definiert.
Der Name der Variablen wird un-
mittelbar nach dem Operation Code
DCL-S angegeben und kann wie auch
im Fix-Format über mehrere Zeilen
durch die Angabe des Fortsetzungszei-
chens (drei aufeinanderfolgende Punk-
te […]) aufgeteilt werden.
Achtung:
Die Fortsetzungszeichen
dürfen im Free-Format nur zum Um-
bruch innerhalb des Variablennamens
verwendet werden. Werden die Fort-
setzungszeichen am Ende des Variab-
lennamens angegeben, wird das in der
nächsten Zeile folgende Schlüsselwort
als Bestandteil des Namens interpre-
tiert, was zu einem Syntax- bzw. Kom-
pilierungsfehler führt.
Lange Feldnamen
im Einsatz
Im folgenden Beispiel werden mehrere
Felder mit langen Feldnamen definiert.
Der Name wird jeweils über mehrere
Zeilen umgebrochen.
Bei der Definition der Variablen
„DefinitionEinesFeldesMitLangem-
Namen“ (1) im Fix-Format muss die
Fortsetzung immer mit drei aufeinan-
derfolgenden Punkten gekennzeichnet
werden. Fehlen diese Fortsetzungszei-
chen nach dem Feldnamen, führt dies
zu einem Syntaxfehler.
Im Free-Format dürfen die Fortset-
zungszeichen nur zum Umbruch inner-
halb des Namens verwendet werden.
Am Ende des Namens dürfen keine
Fortsetzungszeichen stehen. Die Defi-
nition der Variablen „DefinitionEines-
FeldesMitLangemNamen1“ (2) ist dem-
nach korrekt.
Bei der Definition der Variablen
„DefinitionEinesFeldesMitLangemNa-
men2“ (3) wird der Datentyp CHAR(10)
als Bestandteil des Variablennamens
interpretiert, was zu einem Syntaxfeh-
ler führt.
D
DefinitionEinesFeldes... (1)
D
mitLangemNamen...
D
S
10
A
Dcl-S
DefinitionEinesFeldes... (2)
mitLangemNamen1
//← keine Fortsetzungs-
zeichen – Korrekt!!!
Char
(
10
);
Dcl-S
DefinitionEinesFeldes...
mitLangemNamen2...
//← Fortsetzungszeichen
falsch!!!
Char
(
10
);
Beispiel 1: Definition von Feldern mit langen
Variablennamen und Fortsetzungszeichen
Nach dem Variablennamen muss
entweder ein Datentypenschlüsselwort
oder das Schlüsselwort LIKE angege-
ben werden. Alle anderen zulässigen
Schlüsselworte, zum Beispiel INZ zur
Festlegung eines Initialwerts oder DIM
zur Definition von Feldgruppen, kön-
nen im Anschluss in beliebiger Reihen-
folge aufgelistet werden.
Wie jede Free-Format-Anweisung
kann auch die DCL-S-Anweisung nur
zwischen den Positionen 8 und 80 hin-
terlegt, jedoch über beliebig viele Zei-
len aufgeteilt werden. Auch die DCL-S-
Anweisung wird mit einem Semikolon
(;) beendet.
Das folgende Codebeispiel zeigt die
Syntax für die DCL-S-Anweisung.
DCL-S
VariableName
Datentypen_Schlüsselwort
Sonstige_SchlüsselWorte
;
Beispiel 2: Syntax Operation Code DCL-S zur
Definition von eigenständigen Feldern
Im folgenden Beispiel werden di-
verse eigenständige Felder jeweils zu-
nächst im Fix-Format und anschließend
im Free-Format definiert.
Bei der Variablen BIBLIOTHEK (1)
handelt es sich um ein zehnstelliges
alphanumerisches Feld mit fixer Länge.
Die Variable KUNDENNAME (2)
wurde als alphanumerisches Feld mit
variabler Länge definiert.
Bei der Variablen ANZAHL (3) han-
delt es sich um eine gepackt numeri-
sche Variable ohne Dezimalpositionen.
Im Free-Format ist die Angabe der Dezi-
malpositionen in diesem Fall optional.
Die Variable ANZPALETTEN (4)
wurde als Ganzzahl mit positivem Be-
reich definiert und mit dem Maximal-
wert (= 255) initialisiert.
Die Variable NEXTPAGE (5) wurde
als Indikator definiert und mit *ON ini-
tialisiert.
Birgitta Hauser
ó
1...,40,41,42,43,44,45,46,47,48,49 51,52,53,54,55,56,57,58,59,...60
Powered by FlippingBook