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)
|
| 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 #MYDATE (D) INIT <*DATX> 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-string> 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 ...