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:
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).
** 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:
** 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