Ausgangswerte (und das RESET-Statement)

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:


Standard-Ausgangswert einer Benutzervariablen/ eines Arrays

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

Ausgangswert einer Benutzervariablen/einem Array zuweisen

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:

Änderbaren Ausgangswert zuweisen

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 
...

Konstanten-Ausgangswert zuweisen

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 
...

Natural-Systemvariable als Ausgangswert zuweisen

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 
...

Zeichen als Ausgangswert für alphanumerische Variable zuweisen

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 
    ...

Benutzervariable auf ihren Ausgangswert zurücksetzen

Das RESET-Statement dient dazu, den Wert eines Feldes zurückzusetzen. Zwei Optionen stehen dabei zur Verfügung:

Anmerkungen:

  1. Ein mit einer CONSTANT-Klausel im DEFINE DATA-Statement deklariertes Feld kann nicht in einem RESET-Statement referenziert werden, weil sein Inhalt nicht geändert werden kann.
  2. Im Reporting Mode dient das RESET-Statement auch zur Definition einer Variablen, vorausgesetzt das Programm enthält kein DEFINE DATA LOCAL-Statement.

Auf Standard-Ausgangswert zurücksetzen

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 
... 

Auf den im DEFINE DATA-Statement definierten Ausgangswert zurücksetzen

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
...