Dieses Dokument beschreibt die standardmäßigen Ausgangswerte von
Benutzervariablen, erläutert, wie Sie einer Benutzervariable einen Ausgangswert
zuweisen können und wie Sie das RESET
-Statement zum Zurücksetzen
des Feldwertes auf seinen Standard-Ausgangswert oder den für diese Variable im
DEFINE
DATA
-Statement definierten Ausgangswert benutzen können.
Folgende Themen werden behandelt:
Wenn Sie für ein Feld keinen Ausgangswert angeben, wird das Feld je nach seinem Format mit einem Standard-Ausgangswert initialisiert:
Format | Standard-Ausgangswert |
---|---|
B, F, I, N, P | 0 |
A, U | Leerzeichen |
L | F(ALSE) |
D | D' ' |
T | T'00:00:00' |
C | (AD=D )
|
GUI Handle | NULL-HANDLE |
Object Handle | NULL-HANDLE |
Im DEFINE
DATA
-Statement können Sie einer Benutzervariable einen
Ausgangswert zuweisen. Wenn der Ausgangswert alphanumerisch ist, muss er in
Apostrophen (') stehen.
Folgende Themen werden behandelt:
Wenn der Variablen bzw. dem Array ein änderbarer Ausgangswert
zugewiesen werden soll, geben Sie den Ausgangswert in spitzen Klammern mit dem
Schlüsselwort INIT
nach der
Variablen-Definition im DEFINE
DATA
-Statement an. Die zugewiesenen Werte werden jedesmal
benutzt, wenn die Variable bzw. das Array referenziert wird. Die zugewiesenen
Werte können während der Programmausführung geändert werden.
Beispiel:
DEFINE DATA LOCAL 1 #FIELDA (N3) INIT <100> 1 #FIELDB (A20) INIT <'ABC'> END-DEFINE ...
Wenn die Variable bzw. das Array als eine Namens-Konstante behandelt
werden soll, geben Sie den Ausgangswert in spitzen Klammern mit dem
Schlüsselwort CONSTANT
nach
der Variablen-Definition im DEFINE
DATA
-Statement an. Die zugewiesenen Konstanten-Werte werden
jedesmal benutzt, wenn die die Variable bzw. das Array referenziert wird. Die
zugewiesenen Werte können während der Programmausführung nicht
geändert werden.
Beispiel:
DEFINE DATA LOCAL 1 #FIELDA (N3) CONST <100> 1 #FIELDB (A20) CONST <'ABC'> END-DEFINE ...
Als Ausgangswert für ein Feld kann auch der Wert einer Natural-Systemvariablen genommen werden.
Beispiel:
Hier liefert die Systemvariable
*DATX
den Ausgangswert.
DEFINE DATA LOCAL 1 #MYDATE (D) INIT <*DATX> END-DEFINE ...
Als Ausgangswert können Sie auch eine Variable vollständig oder teilweise mit einem bestimmten Zeichen oder einer Zeichenkette füllen (nur bei alphanumerischen Variablen möglich).
Feld komplett füllen:
Mit der Option
FULL LENGTH
<character(s)>
wird das
gesamte Feld mit dem/den angegebenen Zeichen gefüllt.
Hier wird das gesamte Feld mit Sternen (*) gefüllt:
DEFINE DATA LOCAL 1 #FIELD (A25) INIT FULL LENGTH <'*'> END-DEFINE ...
Erste n Stellen eines Feldes füllen:
Mit der Option
LENGTH
n
<character(s)>
werden die
ersten n Stellen des Feldes mit dem/den angegebenen
Zeichen gefüllt.
Hier werden die ersten 4 Stellen des Feldes mit Ausrufungszeichen gefüllt.
DEFINE DATA LOCAL 1 #FIELD (A25) INIT LENGTH 4 <'!'> END-DEFINE ...
Das RESET
-Statement dient dazu, den
Wert eines Feldes zurückzusetzen. Zwei Optionen stehen dabei zur Verfügung:
Anmerkungen:
CONSTANT
-Klausel
im DEFINE DATA
-Statement deklariertes Feld kann nicht in einem
RESET
-Statement referenziert werden, weil sein Inhalt nicht
geändert werden kann.
RESET
-Statement auch zur
Definition einer Variablen, vorausgesetzt das Programm enthält kein
DEFINE DATA
LOCAL
-Statement.
RESET
(ohne
INITIAL
) setzt den Inhalt jedes angegebenen Feldes je nach Format
auf seinen Standard-Ausgangswert zurück.
Beispiel:
DEFINE DATA LOCAL 1 #FIELDA (N3) INIT <100> 1 #FIELDB (A20) INIT <'ABC'> 1 #FIELDC (I4) INIT <5> END-DEFINE ... ... RESET #FIELDA /* resets field value to default initial value ...
RESET
INITIAL
setzt den Inhalt jedes angegebenen Feldes auf den
Ausgangswert zurück, der für das Feld im DEFINE DATA
-Statement
definiert wurde.
Für ein ohne INIT
-Klausel im
DEFINE DATA
-Statement deklariertes Feld hat RESET
INITIAL
denselben Effekt wie RESET
(ohne
INITIAL
).
Beispiel:
DEFINE DATA LOCAL 1 #FIELDA (N3) INIT <100> 1 #FIELDB (A20) INIT <'ABC'> 1 #FIELDC (I4) INIT <5> END-DEFINE ... RESET INITIAL #FIELDA #FIELDB #FIELDC /* resets field values to initial values as defined in DEFINE DATA ...