Index-Notation für multiple Felder und Periodengruppen

#### Search Results

Search

# Index-Notation für multiple Felder und Periodengruppen

Dieses Dokument beschreibt, wie Sie die Index-Notation `(n:n)` benutzen können, um anzugeben, wieviele Werte eines multiplen Feldes oder wieviele Ausprägungen einer Periodengruppe ausgegeben werden sollen.

Folgende Themen werden behandelt:

- Index-Notation benutzen

- Beispiel für Index-Notation im DISPLAY-Statement

- Beispiel für Index-Notation im WRITE-Statement

## Index-Notation benutzen

Mit einer Index-Notation `(n:n)` können Sie angeben, wieviele Werte eines multiplen Feldes bzw. wieviele Ausprägungen einer Periodengruppe ausgegeben werden sollen.

Beispiel: Das Feld `INCOME` im DDM `EMPLOYEES` ist eine Periodengruppe und enthält das jährliche Einkommen eines Mitarbeiters für jedes Jahr der Betriebszugehörigkeit.

Die Daten werden in chronologischer Reihenfolge gespeichert, wobei das Einkommen des jeweils letzten Jahres in der Ausprägung `1` zu finden ist.

Wollen Sie das Jahreseinkommen eines Mitarbeiters in den letzten drei Jahren angezeigt bekommen, d.h. Ausprägungen `1` bis `3`, fügen Sie im `WRITE`- bzw. `DISPLAY`-Statement hinter dem betreffenden Feldnamen die Notation `(1:3)` ein (wie im folgenden Beispielprogramm gezeigt).

## Beispiel für Index-Notation im DISPLAY-Statement

    ** Example 'DISPLX07': DISPLAY (with index notation)
    ************************************************************************
    DEFINE DATA LOCAL
    1 VIEWEMP VIEW OF EMPLOYEES
      2 PERSONNEL-ID
      2 NAME
      2 BIRTH
      2 INCOME  (1:3)
        3 CURR-CODE
        3 SALARY
        3 BONUS (1:1)
    END-DEFINE
    *
    READ (3) VIEWEMP BY BIRTH
      DISPLAY PERSONNEL-ID NAME INCOME (1:3)
      SKIP 1
    END-READ
    END

Ausgabe des Programms `DISPLX07`:

Wenn mehrere Werte eines multiplen Feldes über ein `DISPLAY`-Statement ausgegeben werden, werden diese, wie Sie sehen, untereinander ausgegeben:

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

    PERSONNEL         NAME                     INCOME
       ID
                                   CURRENCY   ANNUAL     BONUS
                                     CODE     SALARY
    --------- -------------------- -------- ---------- ----------

    30020013  GARRET               UKL            4200          0
                                   UKL            4150          0
                                                     0          0

    30016112  TAILOR               UKL            7450          0
                                   UKL            7350          0
                                   UKL            6700          0

    20017600  PIETSCH              USD           22000          0
                                   USD           20200          0
                                   USD           18700          0

Da bei Verwendung eines `WRITE`-Statements die Werte nebeneinander (statt untereinander) ausgegeben werden, kann dies eventuell einen (möglicherweise unerwünschten) automatischen Zeilenvorschub auslösen.

Wenn Sie statt einer ganzen Periodengruppe nur ein Feld (z.B. `SALARY`) aus einer Periodengruppe benutzen und, wie im folgenden Beispiel zwischen `NAME` und `JOB-TITLE`, zusätzlich einen Zeilenvorschub, d.h. einen Schrägstrich (/), einfügen, wird der Report übersichtlicher:

## Beispiel für Index-Notation im WRITE-Statement

    ** Example 'WRITEX03': WRITE (with index notation)
    ************************************************************************
    DEFINE DATA LOCAL
    1 VIEWEMP VIEW OF EMPLOYEES
      2 PERSONNEL-ID
      2 NAME
      2 BIRTH
      2 JOB-TITLE
      2 SALARY (1:3)
    END-DEFINE
    *
    READ (3) VIEWEMP BY BIRTH
      WRITE PERSONNEL-ID NAME / JOB-TITLE SALARY (1:3)
      SKIP 1
    END-READ
    END

Ausgabe des Programms `WRITEX03`:

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

    30020013 GARRET
    TYPIST                          4200       4150          0

    30016112 TAILOR
    WAREHOUSEMAN                    7450       7350       6700

    20017600 PIETSCH
    SECRETARY                      22000      20200      18700

### On this page

- Index-Notation benutzen
- Beispiel für Index-Notation im DISPLAY-Statement
- Beispiel für Index-Notation im WRITE-Statement