REDEFINE
|
operand1 ( |
nX
|
) | ||||
operand2 |
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Gehört zur Funktionsgruppe: Reporting Mode-Statements
Das Statement REDEFINE
dient dazu, ein Feld zu
redefinieren. Das Ergebnis der Neudefinition können eine oder mehrere
Benutzervariablen sein.
Mit einem REDEFINE
-Statement können Sie gleichzeitig
mehrere Felder redefinieren.
Dieses Statement gilt nur im Reporting Mode. Um ein Feld im Structured
Mode zu redefinieren, verwenden Sie die REDEFINE
-Klausel des
DEFINE
DATA
-Statements.
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | S | A | G | A | U | N | P | I | F | B | D | T | L | C | ja | nein | ||||
operand2 | S | A | G | A | N | P | I | F | B | D | T | L | C | ja | ja |
Syntax-Element-Beschreibung:
Die Benutzervariable #A
(Format/Länge A10) enthält den
Wert 123ABCDEFG
.
REDEFINE #A (#A1(N3) #A2(A7))
#A1
erhält den Wert 123
, #A2
den
Wert ABCDEFG
.
Die Benutzervariable #B
(Format/Länge A10) enthält den
hexadezimalen Wert 12345CC1C2C3C4C5C6C7
.
REDEFINE #B (#B1(P4) #B2(A7))
#B1
erhält den hexadezimalen Wert 12345C
,
#B2
den hexadezimalen Wert C1C2C3C4C5C6C7
.
REDEFINE #B (#BB1(B2)8X)) or REDEFINE #B(#BB1(B2))
#BB1
erhält den hexadezimalen Wert 1234
.
Der Wert in #BB1
ist "1234" (im
Hexadecimalformat).
Anmerkung:
Beim Format P (gepackt numerisch) muss die Anzahl der benötigten
Dezimalstellen angegeben werden. Die Anzahl der Bytes, die eine gepackte Zahl
benötigt, lässt sich wie folgt berechnen:
Anzahl der Bytes = (Anzahl der Dezimalstellen + 1) / 2, auf ganze Bytes aufgerundet.
COMPUTE #V (N8.2) = #Y (N10) = ... REDEFINE #V (3X #A(N3) 2X #P (N2)) #Y (#B(N3) 7X)
In diesem Beispiel wird die Systemvariable
*DATN
,
die die Form YYYYMMDD
hat, redefiniert und das Ergebnis in der
Reihenfolge Tag/Monat/Jahr (DAY/MONTH/YEAR
) in drei getrennte
Felder geschrieben:
MOVE *DATN TO #DATINT (N8) REDEFINE #DATINT (#YEAR (N4) #MONTH (N2) #DAY (N2)) DISPLAY NOTITLE #DATINT #DAY #MONTH #YEAR END
#DATINT #DAY #MONTH #YEAR --------- ---- ------ ----- 20140326 26 3 2014