Local Data Areas

#### Search Results

Search

# Local Data Areas

Zurzeit werden die Felder, die in Ihrem Programm benutzt werden, mit `DEFINE DATA` im Programm selbst definiert. Es ist jedoch auch möglich, die Felddefinitionen in einer Local Data Area (LDA) außerhalb des Programms zu definieren und diese Local Data Area im `DEFINE DATA`-Statement des Programms lediglich namentlich zu referenzieren. Für die Wiederverwendbarkeit und zu Gunsten einer klaren Anwendungsstruktur ist es in der Regel besser, die Felder außerhalb eines Programms in einer Data Area zu definieren.

Sie werden jetzt die Informationen aus dem `DEFINE DATA`-Statement in eine Local Data Area verlagern. Wenn Sie mit den Übungen in diesem Abschnitt fertig sind, wird Ihre Beispielanwendung aus den folgenden Modulen bestehen:

- Local Data Area erstellen

- Datenfelder definieren

- Datenfelder aus einem DDM importieren

- Local Data Area aus dem Programm aufrufen

## Local Data Area erstellen

Sie werden jetzt den Data-Area-Editor aufrufen, in dem Sie die erforderlichen Felder definieren.

Data-Area-Editor aufrufen

- Geben Sie die folgenden Informationen unten im Menü Development Functions ein und drücken Sie EINGABE:

           Code .. C    Type .. L   Name .. LDA01___________________________

      Command ===>
      Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
            Help  Menu  Exit                                                  Canc

  "C" steht für die Funktion Create Object (Objekt erstellen), "L" steht für den Objekttyp Local Data Area, und "LDA01" ist der Name für Ihre neue Local Data Area.

  Der Data-Area-Editor erscheint. Der Objekttyp wurde auf "Local" gesetzt. Dies wird oben links im Bildschirm angezeigt.

      Local    LDA01      Library TUTORIAL                       DBID 11177 FNR     8
      Command                                                                     > +
      I T L  Name                             F Length     Miscellaneous
      All -- -------------------------------- - ---------- ------------------------->

      ----------------------------------------------------------------- S 0    L 1

## Datenfelder definieren

Sie werden jetzt die folgenden Felder definieren:

Level (Spalte L) | Name | Format (Spalte F) | Länge
--- | --- | --- | ---
1 | `#NAME-START` | A | 20
1 | `#NAME-END` | A | 20
1 | `#MARK` | A | 1

Dies sind die Benutzervariablen, die Sie zuvor im `DEFINE DATA`-Statement definiert haben.

Datenfelder definieren

1. Geben Sie das folgende Kommando ein, um Ihr Programm und den Data-Area-Editor im selben Bildschirm im Split-Screen-Modus anzuzeigen:

       SPLIT P PGM01

   Der Bildschirm ist jetzt in zwei Hälften geteilt. Ihr Programm wird in der unteren Hälfte des Bildschirms angezeigt. In diesem Modus kann es nicht geändert werden. Sie können das Programm aber als Referenz verwenden, um die Definitionen der Benutzervariablen im Data-Area-Editor einzufügen. Mit den Kommandos `SPLIT +` und `SPLIT -` können Sie im Programm vor- und zurückblättern.

2. Geben Sie alle erforderlichen Informationen so ein, wie sie in der Tabelle oben angegeben sind.

   Die Local Data Area sollte nun folgendermaßen aussehen:

       Local    LDA01      Library TUTORIAL                       DBID 11177 FNR     8
       Command                                                                     > +
       I T L  Name                             F Length     Miscellaneous
       All -- -------------------------------- - ---------- ------------------------->
            1 #NAME-START                      A         20
            1 #NAME-END                        A         20
            1 #MARK                            A          1

       ----------------------------------------------------------------- S 0    L 1
       Program     PGM01     Library TUTORIAL
         0010 DEFINE DATA
         0020 LOCAL
         0030   1 #NAME-START        (A20)
         0040   1 #NAME-END          (A20)
         0050   1 #MARK              (A1)
         0060   1 EMPLOYEES-VIEW VIEW OF EMPLOYEES

3. Geben Sie das folgende Kommando ein, um den Split-Screen-Modus zu beenden:

       SPLIT .

## Datenfelder aus einem DDM importieren

Sie werden jetzt dieselben Datenfelder importieren, die Sie zuvor im `DEFINE DATA`-Statement des Programms definiert hatten. Die Felder werden direkt aus einem Natural-Daten-View in den Data-Area-Editor eingelesen. Ein Daten-View referenziert die Datenbankfelder, die in einem DDM (Data Definition Module) definiert sind.

Datenfelder aus einem DDM importieren

1. Geben Sie Folgendes in der Zeile unter den Variablen ein, die Sie bisher definiert haben - beginnend in der Spalte T:

       .V(EMPLOYEES)

   Beispiel:

        Local    LDA01       Library TUTORIAL                       DBID 11177 FNR     8
        Command                                                                     > +
        I T L  Name                             F Length     Miscellaneous
        All -- -------------------------------- - ---------- ------------------------->
             1 #NAME-START                      A         20
             1 #NAME-END                        A         20
             1 #MARK                            A          1
          . V( EMPLOYEES)

2. Drücken Sie EINGABE.

   Der `EMPLOYEES`-View erscheint.

       SYSGDA 4461: Mark fields to incorporate into data area.
       Local     LDA01     Library TUTORIAL                       DBID 11177 FNR     8
       View EMPLOYEES
       I T L  Name                             F Length     Miscellaneous
       - - -- -------------------------------- - ---------- -------------------------
            2 PERSONNEL-ID                     A          8 /* CNNNNNNN
         G  2 FULL-NAME                                     /* NAME INFORMATION
            3 FIRST-NAME                       A         20 /* FIRST/CHRISTIAN NAME
            3 MIDDLE-I                         A          1 /* MIDDLE INITIAL
            3 NAME                             A         20 /* SURNAME/FAMILY NAME
            2 MIDDLE-NAME                      A         20 /* SECOND/MIDDLE NAME
            2 MAR-STAT                         A          1 /* M=MARRIED
            2 SEX                              A          1
            2 BIRTH                            D            /* BIRTH-DATE (YYYY-MM-
            2 N§BIRTH                          I          2 /* INDICATOR OF BIRTH
         G  2 FULL-ADDRESS
         M  3 ADDRESS-LINE                     A         20 (1:8)/* ALL ADDRESS LINES
            3 CITY                             A         20 /* MAIN CITY/TOWN
            3 ZIP                              A         10 /* POSTAL ADDRESS CODE
            3 POST-CODE                        A         10 /* POSTAL ADDRESS CODE
            3 COUNTRY                          A          3 /* COUNTRY CODE
         G  2 TELEPHONE
       - - -- -------------------------------- - ---------- -------------------------

3. Markieren Sie die folgenden Felder indem Sie ein beliebiges Zeichen in der Spalte I eingeben:

   `PERSONNEL-ID`
   `FULL-NAME`
   `NAME`
   `DEPT`
   `LEAVE-DATA`
   `LEAVE-DUE`

   Nicht alle diese Felder werden auf der ersten Seite des Views angezeigt. Drücken Sie EINGABE, um vorwärts zu blättern.

   Anmerkung
   Das Feld `PERSONNEL-ID` wird später benutzt, wenn Sie das Subprogramm erstellen.

4. Nachdem Sie alle erforderlichen Felder markiert haben, drücken Sie solange EINGABE bis der Data-Area-Editor wieder angezeigt wird.

   Die Local Data Area sollte nun folgendermaßen aussehen:

       SYSGDA 4462: 6 field(s) of view EMPLOYEES included.
       Local     LDA01     Library TUTORIAL                       DBID 11177 FNR     8
       Command                                                                     > +
       I T L  Name                             F Length     Miscellaneous
       All -- -------------------------------- - ---------- ------------------------->
            1 #NAME-START                      A         20
            1 #NAME-END                        A         20
            1 #MARK                            A          1
         V  1 EMPLOYEES-VIEW                                EMPLOYEES
            2 PERSONNEL-ID                     A          8 /* CNNNNNNN
         G  2 FULL-NAME                                     /* NAME INFORMATION
            3 NAME                             A         20 /* SURNAME/FAMILY NAME
            2 DEPT                             A          6 /* DDDDSS
         G  2 LEAVE-DATA                                    /* LEAVE/VACATION INFO
            3 LEAVE-DUE                        N        2.0 /* VACATION DAYS/YEAR

       ----------------------------------------------------------------- S 10   L 1

   "-VIEW" wurde automatisch an den Namen des Views angehängt. Das ist derselbe Name, den Sie bereits in Ihrem Programm benutzt haben.

   Die Spalte T gibt den Variablentyp an. Der View ist mit "V" gekennzeichnet und jede Gruppe ist mit "G" gekennzeichnet.

5. Speichern Sie die Local Data Area mit `STOW`.

## Local Data Area aus dem Programm aufrufen

Sobald eine Local Data Area mit `STOW` gespeichert wurde, kann sie aus einem Natural-Programm heraus aufgerufen werden.

Sie werden jetzt das `DEFINE DATA`-Statement in Ihrem Programm so ändern, dass die eben von Ihnen definierte Local Data Area benutzt wird.

Local Data Area in Ihrem Programm benutzen

1. Kehren Sie zum Programm-Editor zurück, indem Sie Folgendes in der Kommandozeile des Data-Area-Editors eingeben.

       E PGM01

2. Löschen Sie im `DEFINE DATA`-Statement alle Variablen zwischen `LOCAL` und `END-DEFINE` (benutzen Sie hierzu das Zeilenkommando `.D`).

3. Referenzieren Sie die Local Data Area, indem Sie die `LOCAL`-Zeile folgendermaßen ändern:

       LOCAL USING LDA01

   Ihr Programm sollte nun folgendermaßen aussehen:

       DEFINE DATA
         LOCAL USING LDA01
       END-DEFINE
       *
       RP1. REPEAT
       *
         INPUT USING MAP 'MAP01'
       *
         IF #NAME-START = '.' THEN
           ESCAPE BOTTOM (RP1.)
         END-IF
       *
         IF #NAME-END = ' ' THEN
           MOVE #NAME-START TO #NAME-END
         END-IF
       *
         RD1. READ EMPLOYEES-VIEW BY NAME
           STARTING FROM #NAME-START
           ENDING AT #NAME-END
       *
           IF LEAVE-DUE >= 20 THEN
             PERFORM MARK-SPECIAL-EMPLOYEES
           ELSE
             RESET #MARK
           END-IF
       *
           DISPLAY NAME 3X DEPT 3X LEAVE-DUE 3X '>=20' #MARK
       *
         END-READ
       *
         IF *COUNTER (RD1.) = 0 THEN
           REINPUT 'No employees meet your criteria.'
         END-IF
       *
       END-REPEAT
       *
       DEFINE SUBROUTINE MARK-SPECIAL-EMPLOYEES
         MOVE '*' TO #MARK
       END-SUBROUTINE
       *
       END

4. Führen Sie das Programm mit `RUN` aus.

5. Um zu überprüfen, ob das Ergebnis immer noch dasselbe ist wie vorher (als noch keine Local Data Area mit `DEFINE DATA` referenziert wurde), geben Sie "JONES" als Startname ein und drücken Sie EINGABE.

6. Geben Sie `EDIT` in der `MORE`-Zeile ein, um zum Programm-Editor zurückzukehren.

7. Speichern Sie das Programm mit `STOW`.

Sie können nun mit den nächsten Übungen fortfahren: Global Data Areas.

### On this page

- Local Data Area erstellen
- Datenfelder definieren
- Datenfelder aus einem DDM importieren
- Local Data Area aus dem Programm aufrufen