Version 4.2.6
 —  Statements  —

DISPLAY

DISPLAY [( rep)] [options ] {[ / ] [output-format ] output-element}

Dieses Dokument behandelt folgende Themen:

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.

Verwandte Statements: AT END OF PAGE | AT TOP OF PAGE | CLOSE PRINTER | DEFINE PRINTER | EJECT | FORMAT | NEWPAGE | PRINT | SKIP | SUSPEND IDENTICAL SUPPRESS | WRITE | WRITE TITLE | WRITE TRAILER

Gehört zur Funktionsgruppe: Erstellen von Ausgabe-Reports


Funktion

Mit dem DISPLAY-Statement werden die Felder angegeben, deren Werte ausgegeben werden sollen. Die Ausgabe erfolgt in Spaltenform, mit einer Spalte pro Feld und einer Spaltenüberschrift.

Anmerkung:
Die Statements WRITE und PRINT können benutzt werden, um Ausgaben in Freiformat (keine Spalten) zu erzeugen.

Siehe auch die folgenden Themen im Leitfaden zur Programmierung:

Seitenanfang

Syntax-Beschreibung

(rep)
Report-Spezifikation:

Mit der Notation (rep) können Sie einen bestimmten anderen Report angeben, auf den sich das Statement beziehen soll.

Es kann ein Wert von 0 bis 31 oder ein logischer Name, der mit einem DEFINE PRINTER-Statement zugewiesen wurde, angegeben werden. Falls (rep) nicht angegeben wird, bezieht sich das DISPLAY-Statement auf den ersten ausgegebenen Report (Report 0).

Wenn diese Druckdatei für Natural als PC definiert ist, wird der Report auf den PC per Download heruntergeladen, siehe Beispiel 8.

Weitere Informationen darüber, wie das Format eines Ausgabe-Reports gesteuert wird, siehe Steuern der Ausgabe von Daten im Leitfaden zur Programmierung.

options
Anzeige-Optionen:

Einzelheiten siehe Anzeige-Optionen weiter unten.

output-format
Ausgabeformat-Definitionen:

Einzelheiten siehe Ausgabeformat-Definitionen weiter unten.

/
Zeilenvorschub − Schrägstrich-Notation:

Ein Schrägstrich (/) innerhalb eines Textelementes bewirkt einen Zeilenvorschub innerhalb des Textes.

Ein Schrägstrich (/) zwischen zwei Ausgabeelementen bewirkt, dass das nachfolgende Element in derselben Spalte ausgegeben wird. Die Überschrift der Spalte wird gebildet, indem die Überschriften der beiden Elemente unmittelbar untereinander ausgegeben werden.

Siehe auch die folgenden Themen im Leitfaden zur Programmierung:

output-element
Ausgabe-Element:

Einzelheiten siehe Ausgabe-Element weiter unten.

Anzeige-Optionen

[NOTITLE] [NOHDR]

[AND] [GIVE] [SYSTEM] FUNCTIONS

[(statement-parameters)]

Syntax-Element-Beschreibung:

NOTITLE
Unterdrückung der Standard-Kopfzeile:

Natural generiert für jede über ein DISPLAY-Statement ausgegebene Seite eine Standardkopfzeile. Diese Standardkopfzeile enthält die laufende Seitennummer, Datum und Uhrzeit. Die Uhrzeit wird zu Beginn der Programmausführung (TP-Betrieb) bzw. zu Beginn des Jobs (Batch-Betrieb) gesetzt. Die Standardkopfzeile kann mit einer eigenen Kopfzeile überschrieben werden, die mit einem WRITE TITLE-Statement angegeben wird. Das Schlüsselwort NOTITLE innerhalb des DISPLAY-Statements bewirkt, dass die Generierung einer Standardkopfzeile unterdrückt wird.

Beispiele:

  • Generierte Standard-Titelzeile wird ausgegeben:

    DISPLAY NAME
  • Eigene Titelzeile wird ausgegeben:

    DISPLAY NAME WRITE TITLE 'user-title'
  • Keine Titelzeile wird ausgegeben:

    DISPLAY NOTITLE NAME

Anmerkung:
Wird die NOTITLE-Option verwendet, gilt sie für alle DISPLAY-, PRINT- und WRITE-Statements im selben Objekt, die Daten auf denselben Report schreiben.

NOHDR
Spaltenüberschriften:

Für jede mittels eines DISPLAY-Statements ausgegebene Spalte von Feldwerten wird eine Spaltenüberschrift ausgegeben; hierbei gilt folgendes:

  • Sie können mit dem DISPLAY-Statement explizit eine Spaltenüberschrift angeben, und zwar (in Apostrophen) vor dem jeweiligen Feldnamen. Zum Beispiel:

    DISPLAY 'EMPLOYEE' NAME 'SALARY' SALARY
  • Wenn Sie mit dem DISPLAY-Statement keine Spaltenüberschrift angeben, verwendet Natural die im DEFINE DATA-Statement für das Feld angegebene Spaltenüberschrift.

  • Wenn für ein Datenbankfeld im DEFINE DATA-Statement keine Spaltenüberschrift angegeben ist, wird die im betreffenden DDM definierte Standardüberschrift genommen.

  • Ist im DDM keine Spaltenüberschrift definiert, wird stattdessen der (im DDM definierte) Feldname als Überschrift verwendet.

  • Wenn für eine Benutzervariable im DEFINE DATA-Statement keine Spaltenüberschrift angegeben ist, wird der Variablenname als Überschrift verwendet. Zur Definition von Spaltenüberschriften vgl. DEFINE DATA-Statement.

    DISPLAY NAME SALARY #NEW-SALARY
  • Natural unterstreicht die Spaltenüberschriften immer und generiert zwischen Unterstreichung und den ausgegebenen Daten eine Leerzeile.

  • Enthält ein Programm mehrere DISPLAY-Statements, dann bestimmt das erste DISPLAY-Statement die Spaltenüberschriften; dies wird zur Kompilierungszeit ausgewertet.

Unterdrücken von Spaltenüberschriften:

Um die Spaltenüberschrift für ein einzelnes Feld zu unterdrücken,

  • geben Sie vor dem betreffenden Feldnamen die folgenden Zeichen (Apostroph-Schrägstrich-Apostroph) an:

    '/'

    Beispiel:

    DISPLAY '/' NAME 'SALARY' SALARY

Sollen gar keine Spaltenüberschriften ausgegeben werden,

  • geben Sie das Schlüsselwort NOHDR (für "No Header") an:

    DISPLAY NOHDR NAME SALARY

Anmerkungen:

  1. NOHDR gilt nur beim ersten DISPLAY-Statement, da nachfolgende DISPLAY-Statements keine Spaltenüberschriften erzeugen können.
  2. Wenn Sie NOTITLE und NOHDR verwenden, müssen Sie sie in der folgenden Reihenfolge angeben: DISPLAY NOTITLE NOHDR NAME SALARY
GIVE SYSTEM FUNCTIONS
Benutzung von Systemfunktionen:

Die GIVE SYSTEM FUNCTIONS-Klausel dient zur Auswertung der folgenden Natural-Systemfunktionen:

AVER, COUNT, MAX, MIN, NAVER, NCOUNT, NMIN, SUM, TOTAL.

Die Systemfunktionen werden ausgewertet, wenn das DISPLAY-Statement, das die GIVE SYSTEM FUNCTIONS-Klausel enthält, ausgeführt wird.

Die Systemfunktionen können anschließend von einem Statement, das aufgrund einer End-of-Page-Bedingung ausgeführt wird, referenziert werden.

Anmerkungen:

  1. Pro Report darf nur ein DISPLAY-Statement eine GIVE SYSTEM FUNCTIONS-Klausel enthalten. Die Auswertung von Systemfunktionen über DISPLAY GIVE SYSTEM FUNCTIONS geschieht seitenbezogen, d.h. bei Beginn einer neuen Seite werden alle Systemfunktionen außer TOTAL wieder auf Null gesetzt.
  2. Bei der Verwendung von Systemfunktionen mit einem DISPLAY-Statement, das sich in einer Subroutine befindet, muss die End-of-Page-Verarbeitung innerhalb derselben Subroutine stattfinden.

Siehe auch Beispiel 2 − DISPLAY-Statement mit GIVE SYSTEM FUNCTIONS-Klausel.

statement-parameters
Parameter-Definition auf Statement-Ebene:

Sie können (in Klammern) Session-Parameter auf Statement-Ebene setzen, die dann für das DISPLAY-Statement statt der betreffenden mit einem GLOBALS-Kommando, SET GLOBALS-Statement (nur im Reporting Mode) oder FORMAT-Statement gesetzten Parameter gelten.

Werden mehrere Parameter angegeben, müssen sie jeweils durch ein oder mehrere Leerzeichen voneinander getrennt werden. Die Angabe eines Parameters darf sich nicht über zwei Sourcecode-Zeilen erstrecken.

Anmerkung:
Die hier gültigen Parameter-Einstellungen kommen nur für Variablenfelder in Betracht, haben aber keine Auswirkung auf Text-Konstanten. Möchten Sie Feldattribute für eine Text-Konstante setzen, müssen sie explizit für dieses Element gesetzt werden. Siehe Parameter-Definition auf Elementebene (Feldebene).

Siehe auch:

Liste der Parameter

Session-Parameter, die beim DISPLAY-Statement angegeben werden können Spezifikation (S = auf Statement-Ebene, E = auf Elementebene)
AD Attribute Definition SE
AL Alphanumeric Length for Output SE
BX Box Definition SE
CD Color Definition SE
CV Control Variable SE
DF Date Format SE
DL Display Length for Output SE
DY Dynamic Attributes SE
EM Edit Mask SE
ES Empty Line Suppression S
FC Filler Character SE
FL Floating Point Mantissa Length SE
GC Filler Character for Group Headers SE
HC Header Centering SE
HW Heading Width SE
IC Insertion Character SE
IS Identical Suppress SE
LC Leading Characters SE
LS Line Size S
MC Multiple-Value Field Count S
MP Maximum Number of Pages of a Report S
NL Numeric Length for Output SE
PC Periodic Group Count S
PM Print Mode SE
PS Page Size S
SF Spacing Factor SE
SG Sign Position SE
TC Trailing Characters SE
UC Underlining Character SE
ZP Zero Printing SE

Die einzelnen Parameter sind in der Parameter-Referenz-Dokumentation beschrieben.

Siehe auch die folgenden Themen im Leitfaden zur Programmierung:

Beispiel für die Benutzung von Parametern auf Statement- und Elementebene (Feldebene)

DEFINE DATA LOCAL
1 VARI (A4)     INIT <'1234'>                              /*     Output 
END-DEFINE                                                 /*    Produced
*                                                          /*    ---------  
DISPLAY NOHDR           'Text'         '='   VARI          /*    Text 1234
DISPLAY NOHDR (PM=I)    'Text'         '='   VARI          /*    Text 4321
DISPLAY NOHDR           'Text' (PM=I)  '='   VARI (PM=I)   /*    txeT 4321
DISPLAY NOHDR           'Text' (PM=I)  '='   VARI          /*    txeT 1234
END

Ausgabeformat-Definitionen

nX

               
nT                
x/y  

'text' [(attributes)]  

       
T*field-name   'c' (n)   [(attributes)] 

     
P*field-name                
                     

VERTICALLY

AS

'text' [(attributes)] [CAPTIONED]

[/ ]

 
[CAPTIONED]  
[HORIZONTALLY]                

Feldpositionierung

nX
Spaltenabstand:

Mit dieser Notation fügen Sie zwischen den auszugebenden Spalten n Leerstellen ein. n darf nicht 0 sein.

Beispiel:

DISPLAY NAME 5X SALARY

Siehe auch:

nT
Setzen von Tabulatoren:

Mit dieser Notation setzen Sie Tabulatoren, d.h. die Ausgabe eines Wertes beginnt ab Spalte n.

Zurückpositionieren ist nicht erlaubt.

Im folgenden Beispiel wird NAME ab Spalte 25 und SALARY ab Spalte 50 ausgegeben:

DISPLAY 25T NAME 50T SALARY

Siehe auch:

x/y
x/y-Positionierung:

Mit dieser Notation erreichen Sie, dass ein Feld x Zeilen unter der Ausgabe des letzten Statements, und zwar ab Spalte y ausgegeben wird.

y darf nicht 0 sein.

Zurückpositionieren ist nicht erlaubt.

T*field-name
Feldbezogene Positionierung:

Mit dieser Notation wird die Position eines Feldes nach der Position eines in einem vorhergehenden DISPLAY-Statement ausgegebenen Feldes (field-name) ausgerichtet.

Zurückpositionieren ist nicht erlaubt.

P*field-name
Feld- und zeilenbezogene Positionierung:

Mit dieser Notation werden Position und Ausgabezeile eines Feldes nach denen eines in einem vorhergehenden DISPLAY-Statement ausgegebenen Feldes (field-name) ausgerichtet. Dies wird meist bei vertikalen Ausgaben eingesetzt.

Zurückpositionieren ist nicht erlaubt.

Siehe auch:

Spaltenüberschriften

'text'  

'/'

Textzuweisung:

In Apostrophen angegebener Text ('text') vor einem Feld wird als Spaltenüberschrift verwendet. Ein Schrägstrich in Apostrophen ’/’ vor einem Feldnamen bewirkt, dass für dieses Feld keine Spaltenüberschrift ausgegeben wird. Beispiel:

DISPLAY 'EMPLOYEE' NAME 'MARITAL/STATUS' MAR-STAT

Werden vor einem Feldnamen mehrere Textelemente 'text' angegeben, so wird das letzte als Spaltenüberschrift verwendet und die anderen werden in der Ausgabespalte vor dem Feldwert ausgegeben.

Siehe auch:

'c'(n)
Wiederholungszeichen:

Das in Apostrophen (') stehende Zeichen c (character) wird n-mal unmittelbar vor dem Feldwert ausgegeben. Beispiel:

DISPLAY '*' (5) '=' NAME

führt zur Ausgabe von:

***** SMITH

Siehe auch:

Ausgabe-Attribute

attributes gibt die für die Text-Anzeige zu benutzenden Ausgabe-Attribute an. Es gibt die folgenden Attribute:

AD=AD-value
BX=BX-value
CD=CD-value
PM=PM-value

AD-value
CD-value

Die möglichen Parameterwerte sind in der Parameter-Referenz aufgeführt.

Anmerkung:
Der Compiler akzeptiert tatsächlich mehr als einen Attributwert für ein Ausgabefeld. Zum Beispiel können Sie Folgendes angeben: AD=BDI. In solch einem Fall gilt allerdings nur der letzte Wert. Im hier gezeigten Beispiel erhält nur der Wert I Gültigkeit, und das Ausgabefeld wird intensiviert (hell hervorgehoben) angezeigt.

Vertikale/Horizontale Ausgabe

Mit DISPLAY VERT werden die Werte mehrerer Felder nicht in Spalten nebeneinander sondern in einer Spalte untereinander ausgegeben. Eine neue Spalte wird durch Angabe des Schlüsselwortes VERT oder HORIZ initialisiert.

Die Ausgabe von Spaltenüberschriften wird beim DISPLAY VERT über die AS-Klausel gesteuert:

VERTICALLY Vertikale Spaltenausrichtung. Es wird keine Spaltenüberschrift erzeugt, wenn die AS-Klausel weggelassen wird.

Beispiel:

DISPLAY VERT NAME SALARY

Siehe auch Beispiel DISPLAY VERT ohne AS-Klausel im Leitfaden zur Programmierung.

AS 'text' Vertikale Spaltenausrichtung. Wenn AS 'text' angegeben wird, wird der in Apostrophen stehende Text als Spaltenüberschrift ausgegeben.

Siehe auch Beispiel DISPLAY VERT AS 'text' im Leitfaden zur Programmierung.

Wenn Sie einen Schrägstrich (/) in der Zeichenkette 'text' angeben, werden mehrere Zeilen mit Spaltenüberschriften erzeugt.

Beispiel:

DISPLAY VERT AS 'LAST/NAME' NAME
AS 'text' CAPTIONED

Vertikale Spaltenausrichtung. Wenn AS 'text' CAPTIONED angegeben wird, wird 'text' als Spaltenüberschrift ausgegegeben, und außerdem wird die Standard-Spaltenüberschrift bzw. der Feldname in jeder Ausgabezeile dem jeweiligen Feldwert vorangestellt.

Beispiel:

DISPLAY VERT AS 'PERSONS/SELECTED' CAPTIONED NAME FIRST-NAME 

Siehe auch Beispiel DISPLAY VERT AS 'text' CAPTIONED im Leitfaden zur Programmierung.

AS CAPTIONED Vertikale Spaltenausrichtung. Wenn AS CAPTIONED angegeben wird, wird der standardmäßige Überschriften-Text für das Feld ausgegeben (entweder Überschriften- Text oder den Feldnamen).

Beispiel:

DISPLAY VERT AS CAPTIONED NAME FIRST-NAME
HORIZONTALLY Horizontale Spaltenausrichtung. Dies ist der standardmäßige Anzeigemodus.

Vertikale und horizontale Ausgaben können miteinander kombiniert verwendet werden, wobei der Wechsel von einer Form zur anderen durch die Angabe des jeweiligen Schlüsselwortes (VERT oder HORIZ) erfolgt.

Um die vertikale Ausgabe für ein einzelnes Ausgabeelement auszusetzen, geben Sie vor dem Element einen Gedankenstrich (-) ein.

Beispiel:

DISPLAY VERT NAME - FIRST-NAME SALARY

würde bewirken, dass FIRST-NAME neben NAME ausgegeben wird, während SALARY wieder vertikal, d.h. unter NAME, ausgegeben wird.

Normalerweise erzeugt ein DISPLAY-Statement eine horizontale Ausgabe, d.h. die Ausgabe erfolgt in Spalten, die nebeneinander angeordnet sind.

Bei der Generierung der Spaltenüberschriften hat Natural folgende Prioritäten:

  1. Der im DISPLAY-Statement für eine Spaltenüberschrift angegebene 'text'.

  2. Bei Datenbankfeldern die im DDM definierte Standardspaltenüberschrift, bei Benutzervariablen der Variablenname.

  3. Bei Datenbankfeldern der Name, unter dem das Feld im DDM definiert ist (wenn für das Datenbankfeld kein Überschriftentext definiert wurde).

Bei Gruppennamen wird eine Gruppen-Spaltenüberschrift für die gesamte Gruppe von Feldern erzeugt. Bei Angabe einer Gruppe kann nur diese Standard-Gruppenüberschrift durch eine eigene überschrieben werden.

Es sind bis zu 15 Spaltenüberschriftenzeilen erlaubt.

Die über ein DISPLAY-Statement erzeugte Ausgabe darf nicht über das Zeilenende hinausgehen; ist dies doch der Fall, gibt Natural eine entsprechende Fehlermeldung aus.

Weitere Informationen zur Benutzung der vertikalen/horizontalen Ausgabe siehe

Ausgabe-Element

'text' [(attributes)]  

 
'c'(n)   [(attributes)]   
  nX   ['='] {operand1 [(parameters)]}
  nT    
  x/y    

Operanden-Definitionstabelle:

Operand Mögliche Struktur Mögliche Formate Referenzierung erlaubt Dynam. Definition
operand1   S A G N A N P I F B D T L   G O ja nein

Syntax-Element-Beschreibung:

nX
Spalten-Abstand:

Wie unter Ausgabeformat-Definitionen (siehe oben).

nT
Setzen von Tabulatoren:

Wie unter Ausgabeformat-Definitionen (siehe oben).

x/y
x/y-Positionierung:

Wie unter Ausgabeformat-Definitionen (siehe oben).

'text'
Textzuweisung:

Wie unter Ausgabeformat-Definitionen (siehe oben).

'c'(n)
Wiederholungszeichen:

Wie unter Ausgabeformat-Definitionen (siehe oben).

'text' '='

'c' (n) '='

Wird 'text' '=' vor einem Feld angegeben, so wird text unmittelbar vor dem Feldwert ausgegeben. Dies gilt analog dazu für 'c' (n) '='.

Beispiel:

DISPLAY '*****' '=' NAME
attributes
Ausgabe-Attribute:

Wie unter Ausgabeformat-Definitionen (siehe oben).

operand1 Das auszugebende Feld.

Anmerkung:
Bei DL/I-Datenbanken: DL/I-AIX-Felder können nur angezeigt werden, wenn ein PCB verwendet wird, in dem das AIX im Parameter PROCSEQ angegeben ist. Ist dies nicht der Fall, gibt Natural zur Laufzeit eine Fehlermeldung aus.

parameters
Parameter-Definiton auf Elementebene (Feldebene):

Unmittelbar nach operand1 können Sie auf Elementebene (Feldebene) in Klammern einen oder mehrere Parameter angeben, die dann für das betreffende Feld statt der entsprechenden auf Statement-Ebene oder mit einem GLOBALS-Kommando, SET GLOBALS-Statement (nur Reporting Mode)- oder FORMAT-Statement gesetzten Parameter gelten.

Werden mehrere Parameter angegeben, müssen sie jeweils durch ein oder mehrere Leerzeichen voneinander getrennt werden. Die Angabe eines Parameters darf sich nicht über zwei Sourcecode-Zeilen erstrecken.

Siehe auch:

Seitenanfang

Standardwerte

Für ein DISPLAY-Statement gelten folgende Standardwerte:

Seitenanfang

Beispiele

Beispiel 1 — DISPLAY-Statement mit der Notation nX und nT

** Example 'DISEX1': DISPLAY (with nX, nT notation)                     
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPL-VIEW VIEW OF EMPLOYEES                                           
  2 NAME                                                                
  2 JOB-TITLE                                                           
END-DEFINE                                                              
*                                                                       
LIMIT 4                                                                 
READ EMPL-VIEW BY NAME                                                  
  DISPLAY NOTITLE 5X NAME 50T JOB-TITLE
END-READ                                                                
*                                                                       
END                                                                    

Ausgabe des Programms DISEX1:

        NAME                                         CURRENT         
                                                    POSITION         
--------------------                        -------------------------
                                                                     
ABELLAN                                     MAQUINISTA               
ACHIESON                                    DATA BASE ADMINISTRATOR  
ADAM                                        CHEF DE SERVICE          
ADKINSON                                    PROGRAMMER              

Beispiel 2 — DISPLAY-Statement mit GIVE SYSTEM FUNCTIONS-Klausel

** Example 'DISEX2': DISPLAY (with GIVE SYSTEM FUNCTIONS)               
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 PERSONNEL-ID                                                        
  2 NAME                                                                
  2 FIRST-NAME                                                          
  2 SALARY    (1)                                                       
  2 CURR-CODE (1)                                                       
END-DEFINE                                                              
*                                                                       
LIMIT 15                                                                
FORMAT PS=15                                                            
*                                                                       
READ EMPLOY-VIEW                                                        
  DISPLAY GIVE SYSTEM FUNCTIONS                                         
          PERSONNEL-ID NAME FIRST-NAME SALARY (1) CURR-CODE (1)
  AT END OF PAGE                                                        
    WRITE /    'SALARY STATISTICS:'                                     
          / 7X 'MAXIMUM:' MAX(SALARY(1))  CURR-CODE (1)
          / 7X 'MINIMUM:' MIN(SALARY(1))  CURR-CODE (1)
          / 7X 'AVERAGE:' AVER(SALARY(1)) CURR-CODE (1)
  END-ENDPAGE                                          
END-READ                                               
*                                                      
END

Ausgabe des Programms DISEX2:

Page      1                                                  05-01-12  09:47:48
                                                                               
PERSONNEL         NAME              FIRST-NAME        ANNUAL   CURRENCY        
   ID                                                 SALARY     CODE          
--------- -------------------- -------------------- ---------- --------        
                                                                               
50005500  BLOND                ALEXANDRE                172000 FRA             
50005300  MAIZIERE             ELISABETH                166900 FRA             
50004900  CAOUDAL              ALBERT                   167350 FRA             
50004600  VERDIE               BERNARD                  170100 FRA             
50004200  VAUZELLE             BERNARD                  159790 FRA             
50004100  CHAPUIS              ROBERT                   169900 FRA             
50003800  JOUSSELIN            DANIEL                   171990 FRA             
50006900  BAILLET              PATRICK                  188000 FRA             
50007600  MARX                 JEAN-MARIE               365700 FRA             
                                                                               
SALARY STATISTICS:                                                             
       MAXIMUM:     365700 FRA                                                 
       MINIMUM:     159790 FRA                                                 
       AVERAGE:     192414 FRA                                                

Beispiel 3 — DISPLAY-Statement mit der Notation P*

** Example 'DISEX3': DISPLAY (with P* notation)                         
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPL-VIEW VIEW OF EMPLOYEES                                           
  2 NAME                                                                
  2 SALARY (1)                                                          
  2 BIRTH                                                               
  2 CITY                                                                
END-DEFINE                                                              
*                                                                       
LIMIT 2                                                                 
READ EMPL-VIEW BY CITY FROM 'N'                                         
 DISPLAY NOTITLE NAME CITY                                             
          VERT AS 'BIRTH/SALARY' BIRTH (EM=YYYY-MM-DD) SALARY (1)
  SKIP 1                                                                
  AT BREAK OF CITY                                                          
    DISPLAY P*SALARY (1) AVER(SALARY (1))                         
    SKIP 1                                                              
  END-BREAK                                                             
END-READ
END    

Ausgabe des Programms DISEX3:

        NAME                 CITY           BIRTH   
                                            SALARY  
-------------------- -------------------- ----------
                                                    
WILCOX               NASHVILLE            1970-01-01
                                               38000
                                                    
MORRISON             NASHVILLE            1949-07-10
                                               36000
                                                    
                                                    
                                               37000

Beispiel 4 — DISPLAY-Statement mit 'text', 'c(n)' und Attribut-Notation

** Example 'DISEX4': DISPLAY (with 'c(n)' notation and attribute)       
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPL-VIEW VIEW OF EMPLOYEES                                           
  2 DEPT                                                                
  2 LEAVE-DUE                                                           
  2 NAME                                                                
END-DEFINE                                                              
*                                                                       
LIMIT 4                                                                 
READ EMPL-VIEW BY DEPT FROM 'T'                                         
  IF LEAVE-DUE GT 40                                                    
   DISPLAY NOTITLE                                                     
           'EMPLOYEE' NAME                /* OVERRIDE STANDARD HEADER   
           'LEAVE ACCUMULATED' LEAVE-DUE  /* OVERRIDE STANDARD HEADER   
           '*'(10)(I)                     /* DISPLAY 10 '*' INTENSIFIED 

  ELSE                                                                  
    DISPLAY NAME LEAVE-DUE                                         
  END-IF                                                                
END-READ
*       
END    

Ausgabe des Programms DISEX4:

      EMPLOYEE       LEAVE ACCUMULATED           
-------------------- -----------------           
                                                 
LAVENDA               33                         
BOYER                 33                         
CORREARD              45               **********
BOUVIER               19                        

Beispiel 5 — DISPLAY-Statement mit horizontaler Ausgabe

** Example 'DISEX5': DISPLAY (horizontal display)                       
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPL-VIEW VIEW OF EMPLOYEES                                           
  2 NAME                                                                
  2 JOB-TITLE                                                           
  2 SALARY    (1:2)                                                     
  2 CURR-CODE (1:2)                                                     
END-DEFINE                                                              
*                                                                       
LIMIT 4                                                                 
READ EMPL-VIEW BY NAME                                                  
 DISPLAY NOTITLE NAME JOB-TITLE SALARY (1:2) CURR-CODE (1:2)    
  SKIP 1                                                                
END-READ                                                                
*                                                                       
END                                                                    

Ausgabe des Programms DISEX5:

        NAME                  CURRENT            ANNUAL   CURRENCY
                             POSITION            SALARY     CODE  
-------------------- ------------------------- ---------- --------
                                                                  
ABELLAN              MAQUINISTA                   1450000 PTA     
                                                  1392000 PTA     
                                                                  
ACHIESON             DATA BASE ADMINISTRATOR        11300 UKL     
                                                    10500 UKL     
                                                                  
ADAM                 CHEF DE SERVICE               159980 FRA     
                                                        0         
                                                                  
ADKINSON             PROGRAMMER                     34500 USD     
                                                    31700 USD    

Beispiel 6 — DISPLAY-Statement mit vertikaler und horizontaler Ausgabe

** Example 'DISEX6': DISPLAY (vertical and horizontal display)          
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPL-VIEW VIEW OF EMPLOYEES                                           
  2 NAME                                                                
  2 CITY                                                                
  2 JOB-TITLE                                                           
  2 SALARY    (1:2)                                                     
  2 CURR-CODE (1:2)                                                     
END-DEFINE                                                              
*                                                                       
LIMIT 1                                                                 
READ EMPL-VIEW BY NAME                                                  
 DISPLAY NOTITLE VERT AS CAPTIONED                                     
          NAME CITY 'POSITION' JOB-TITLE                                
          HORIZ 'SALARY' SALARY (1:2) 'CURRENCY' CURR-CODE (1:2)
  /*                                                                    
  SKIP 1                                                                
END-READ 
END

Ausgabe des Programms DISEX6:

          NAME              SALARY   CURRENCY
          CITY                               
        POSITION                             
------------------------- ---------- --------
                                             
ABELLAN                      1450000 PTA     
MADRID                       1392000 PTA     
MAQUINISTA                                  

Beispiel 7 — DISPLAY-Statement mit Parametern auf Statement-/Elementebene (Feldebene)

** Example 'DISEX7': DISPLAY (with parameters for statement/element)    
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPL-VIEW VIEW OF EMPLOYEES                                           
  2 NAME                                                                
  2 PERSONNEL-ID                                                        
  2 TELEPHONE                                                           
    3 AREA-CODE                                                         
    3 PHONE                                                             
END-DEFINE                                                              
*                                                                       
LIMIT 3                                                                 
READ EMPL-VIEW BY NAME                                                  
 DISPLAY NOTITLE (AL=16 GC=+ NL=8 SF=3 UC==)                           
          PERSONNEL-ID NAME TELEPHONE (LC=< TC=>)                 
END-READ                                                                
END                                                                    

Ausgabe des Programms DISEX7:

   PERSONNEL             NAME         +++++++++++++++TELEPHONE+++++++++++++++
       ID                                                                    
                                             AREA              TELEPHONE     
                                             CODE                            
================   ================   ==================   ==================
                                                                             
60008339           ABELLAN            <1     >             <4356726        > 
30000231           ACHIESON           <0332  >             <523341         > 
50005800           ADAM               <1033  >             <44864858       >

Beispiel 8 — Report-Spezifikation mit für Natural als PC definierter Ausgabedatei

** Example 'PCDIEX1': DISPLAY and WRITE to PC                           
**                                                                      
** NOTE: Example requires that Natural Connection is installed.         
************************************************************************
DEFINE DATA LOCAL                                                       
01 PERS VIEW OF EMPLOYEES                                               
  02 PERSONNEL-ID                                                       
  02 NAME                                                               
  02 CITY                                                               
END-DEFINE                                                              
*                                                                       
FIND PERS WITH CITY = 'NEW YORK'               /* Data selection        
  WRITE (7) TITLE LEFT 'List of employees in New York' /                
  DISPLAY (7)          /* (7) designates the output file (here the PC).
    'Location'  CITY                                                    
    'Surname'   NAME                                                    
    'ID'        PERSONNEL-ID                                            
END-FIND                                                                
END

Seitenanfang