Felder redefinieren

#### Search Results

Search

# Felder redefinieren

Die Redefinition dient dazu, das Format eines Feldes zu ändern oder ein einzelnes Feld in mehrere Teile aufzuteilen.

Dieses Dokument behandelt folgende Themen:

- REDEFINE-Option des DEFINE DATA-Statements

- Beispielprogramm für eine Redefinition

## REDEFINE-Option des DEFINE DATA-Statements

Mit der `REDEFINE`-Option des `DEFINE DATA`-Statements kann ein einzelnes Feld — entweder eine Benutzervariable oder ein Datenbankfeld — als ein neues Feld oder mehrere neue Felder redefiniert werden. Eine Gruppe kann ebenfalls redefiniert werden.

Wichtig
Dynamische Variablen sind bei einer Redefinition nicht zulässig.

Die `REDEFINE`-Option redefiniert die Byte-Positionen eines Feldes von links nach rechts, unabhängig vom Format. Die Byte-Positionen des ursprünglichen Feldes und des neudefinierten Feldes bzw. der neudefinierten Felder müssen einander entsprechen.

Eine Redefinition muss unmittelbar nach der Definition des ursprünglichen Feldes angegeben werden.

#### Beispiel 1:

Im folgenden Beispiel wird das Datenbankfeld `BIRTH` als drei neue Benutzervariablen redefiniert:

    DEFINE DATA LOCAL
    01 EMPLOY-VIEW VIEW OF STAFFDDM
      02 NAME
      02 BIRTH
      02 REDEFINE BIRTH
         03 #BIRTH-YEAR  (N4)
         03 #BIRTH-MONTH (N2)
         03 #BIRTH-DAY   (N2)
    END-DEFINE
       ...

#### Beispiel 2:

Im folgenden Beispiel wird die Gruppe `#VAR2`, die aus zwei Benutzervariablen mit Format N bzw. P besteht, als eine neue Variable vom Format A redefiniert:

    DEFINE DATA LOCAL
    01 #VAR1 (A15)
    01 #VAR2
      02 #VAR2A (N4.1)
      02 #VAR2B (P6.2)
    01 REDEFINE #VAR2
      02 #VAR2RD (A10)
    END-DEFINE
       ...

Mit der Notation `FILLER nX` können Sie in dem Feld, das redefiniert wird, n Füllbytes - d.h. Segmente, die nicht benutzt werden sollen - definieren. (Nachgestellte Füllbytes müssen nicht unbedingt angegeben werden.)

#### Beispiel 3:

Im folgenden Beispiel wird die Benutzervariable `#FIELD` als drei neue Benutzervariablen, jede mit Format/Länge A2, redefiniert. Die `FILLER`-Notationen bedeuten, dass das 3. und 4. sowie das 7. bis 10. Byte des ursprünglichen Feldes nicht benutzt werden sollen.

    DEFINE DATA LOCAL
    1 #FIELD (A12)
    1 REDEFINE #FIELD
      2 #RFIELD1 (A2)
      2 FILLER 2X
      2 #RFIELD2 (A2)
      2 FILLER 4X
      2 #RFIELD3 (A2)
    END-DEFINE
    ...

## Beispielprogramm für eine Redefinition

Das folgende Programm veranschaulicht die Anwendung einer Redefinition:

    ** Example 'DDATAX01': DEFINE DATA
    ************************************************************************
    DEFINE DATA LOCAL
    01 VIEWEMP VIEW OF EMPLOYEES
      02 NAME
      02 FIRST-NAME
      02 SALARY   (1:1)
    *
    01 #PAY       (N9)
    01 REDEFINE #PAY
      02 FILLER   3X
      02 #USD     (N3)
      02 #OOO     (N3)
    END-DEFINE
    *
    READ (3) VIEWEMP BY NAME STARTING FROM 'JONES'
      MOVE SALARY (1) TO #PAY
      DISPLAY NAME FIRST-NAME #PAY #USD #OOO
    END-READ
    END

Ausgabe des Programms `DDATAX01`:

Beachten Sie, wie das Feld `#PAY` und die aus seiner Redefinition resultierenden Felder angezeigt werden:

    Page      1                                                  04-11-11  14:15:54

            NAME              FIRST-NAME         #PAY    #USD #OOO
    -------------------- -------------------- ---------- ---- ----

    JONES                VIRGINIA                  46000   46    0
    JONES                MARSHA                    50000   50    0
    JONES                ROBERT                    31000   31    0

### On this page

- REDEFINE-Option des DEFINE DATA-Statements
- Beispielprogramm für eine Redefinition