DISPLAY

#### Search Results

Search

# DISPLAY

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

Dieses Dokument behandelt folgende Themen:

- Funktion

- Syntax-Beschreibung

- Standardwerte

- Beispiele

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:

- Steuerung der Ausgabe von Daten

- Statements DISPLAY und WRITE

- Index-Notation (n:n) für multiple Felder und Periodengruppen

- Spaltenüberschriften

- Layout einer Ausgabeseite

## Syntax-Beschreibung

Syntax-Element-Beschreibung

Syntax-Element | 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: Zeilenvorschub − die Schrägstrich-Notation (/) Beispiel für Zeilenvorschub in DISPLAY-Statement Spaltenüberschriften unterdrücken − die Schrägstrich-Notation ('/')
`output-element` | Ausgabe-Element: Einzelheiten siehe Ausgabe-Element weiter unten.

### Anzeige-Optionen

[`NOTITLE`] [`NOHDR`] |  | [`AND`] [`GIVE`] [`SYSTEM`] `FUNCTIONS` |  | [(`statement-parameters`)]

Syntax-Element-Beschreibung:

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: `NOHDR` gilt nur beim ersten `DISPLAY`-Statement, da nachfolgende `DISPLAY`-Statements keine Spaltenüberschriften erzeugen können. 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: 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. 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. Anstelle des Schlüsselworts `GIVE` können Sie auch das Schlüsselwort `GIVING` verwenden. 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 Beispiel für die Benutzung von Parametern auf Statement- und Elementebene (Feldebene) Beispiel 7 − DISPLAY-Statement mit Parametern auf Statement-/Elementebene (Feldebene)

### Liste der Parameter

Session-Parameter, die beim `DISPLAY`-Statement angegeben werden können | Spezifikation (S = auf Statement-Ebene, E = auf Elementebene)
--- | ---
`AD` | Attribut-Definition | SE
`AL` | Alphanumerische Länge der Ausgabe | SE
`BX` | Feldumrahmung (Box-Definition) | SE
`CD` | Farbdefinition | SE
`CV` | Kontrollvariable | SE
`DF` | Datumsformat | SE
`DL` | Ausgabelänge | SE
`DY` | Dynamische Attribute | SE
`EM` | Edit Mask | SE
`EMU` | Unicode-Editiermaske | E
`ES` | Leerzeilenunterdrückung | S
`FC` | Füllzeichen für DISPLAY-Statement | SE
`FL` | Gleitkomma-Mantissenlänge | SE
`GC` | Füllzeichen für Gruppenüberschriften | SE
`HC` | Überschriften-Zentrierung | SE
`HW` | Überschriftenbreite | SE
`IC` | Einfügungszeichen | SE
`ICU` | Unicode-Einfügungszeichen | SE
`IS` | Unterdrückung identischer Werte | SE
`LC` | Vorangestellte Zeichens | SE
`LCU` | Vorangestellte Unicode-Zeichen | SE
`LS` | Zeilenlänge | S
`MC` | Anzahl multipler Feldwerte (Kann nur im Reporting Mode verwendet werden.) | S
`MP` | Maximale Seitenzahl eines Reports | S
`NL` | Numerische Länge der Ausgabe | SE
`PC` | Anzahl der Periodengruppen-Ausprägungen (Kann nur im Reporting Mode verwendet werden.) | S
`PM` | Druck-Modus | SE
`PS` | Länge einer Reportseite | S
`SF` | Spaltenabstand | SE
`SG` | Vorzeichen-Stelle | SE
`TC` | Nachgezogene Zeichen | SE
`TCU` | Nachgezogene Zeichen (Unicode) | SE
`UC` | Unterstreichungszeichen | SE
`ZP` | Anzeige von Nullwerten | SE

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

Siehe auch die folgenden Themen im Leitfaden zur Programmierung:

- Spaltenüberschriften zentrieren − der HC-Parameter

- Breite der Spaltenüberschriften − der HW-Parameter

- Füllzeichen für Überschriften − die Parameter FC und GC

- Unterstreichungszeichen für Überschriften und Kopfzeilen − der UC-Parameter

### 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

| n `X` |  |  |  |  |  |  |  |  |
n `T` |  |  |  |  |  |  |  |
`x/y` |  |  | `'text'` [(`attributes`)] |  |  |  |  |
`T*``field-name` |  | 'c' (`n`) [(`attributes`)] |  |  |  |
`P*``field-name` |  |  |  |  |  |  |  |
| `VERTICALLY` |  | `AS` |  | `'text'` [(`attributes`)] [`CAPTIONED`] |  |  | [/ ] |  |
[`CAPTIONED`] |
[`HORIZONTALLY`] |  |  |  |  |  |  |  |

#### Feldpositionierung

Syntax-Element | Beschreibung
--- | ---
`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: Beispiel 1 − DISPLAY-Statement mit Notation nX- und nT (weiter unten) Spaltenabstand − der SF-Parameter und die Notation nX (im Leitfaden zur Programmierung)
`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: Beispiel 1 − DISPLAY-Statement mit Notation nX- und nT (weiter unten) Tabulator-Notation nT (im Leitfaden zur Programmierung)
`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: Beispiel 3 − DISPLAY-Statement mit der Notation P* (weiter unten) Tab-Notation P*field (im Leitfaden zur Programmierung)

#### Spaltenüberschriften

Syntax-Element | Beschreibung
--- | ---
`'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: Eigene Spaltenüberschriften definieren (im Leitfaden zur Programmierung) Text Notation, Text-Notation, Text für ein Statement definieren (im Leitfaden zur Programmierung) Beispiel 4 − DISPLAY-Statement mit ’text’, ’c'(n) und Attribut-Notation (weiter unten)
`'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: Text-Notation, n mal vor einem Feldwert anzuzeigendes Zeichen definieren (im Leitfaden zur Programmierung) Beispiel 4 − DISPLAY-Statement mit ’text’, ’c(n)’ und Attribut- Notation (weiter unten)

#### 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.

- AD - Attribute Definition, Abschnitt Feldanzeige

- CD - Color Definition

- BX - Box Definition

- PM - Print Mode

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:

Syntax-Element | Beschreibung
--- | ---
`VERTICALLY` | DISPLAY VERT ohne AS-Klausel: 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'` | DISPLAY VERT AS 'text'-Klausel: 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` | DISPLAY VERT AS 'text' CAPTIONED-Klausel: 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` | DISPLAY VERT AS CAPTIONED-Klausel: 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` | DISPLAY HORIZONTAL-Klausel: 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

- Beispiel 5 − DISPLAY-Statement mit horizontaler Ausgabe

- Beispiel 6 − DISPLAY-Statement mit vertikaler und horizontaler Ausgabe

- DISPLAY VERT AS CAPTIONED und HORIZ im Leitfaden zur Programmierung

### Ausgabe-Element

|  | '`text'` [(`attributes`)] `` |  |  |
'`c'`(n) [(`attributes`)] |
| `n` `X` |  | [`'='`] {`operand1` [(`parameters`)]}
| `n` `T` |  |
| `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:

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.
`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: Liste der Parameter Beispiel für die Benutzung von Parametern auf Statement- und Elementebene (Feldebene)

## Standardwerte

Für ein `DISPLAY`-Statement gelten folgende Standardwerte:

- Report-Breite:
  Die für Ausgaben gültige Standardbreite wird bei der Installation von Natural festgelegt; in der Regel beträgt sie im Batch-Betrieb 132 Stellen und entspricht im TP-Betrieb der Zeilenlänge des Terminals. Sie kann mit dem Session-Parameter `LS` überschrieben werden. Im TP-Betrieb setzt Natural die Parameter für Zeilenlänge (`LS`) und Seitenlänge (`PS`) unter Berücksichtigung der physischen Charakteristika des verwendeten Terminaltyps.

- Terminal-Bildschirmausgabe:
  Erfolgt die `DISPLAY`-Ausgabe auf dem Bildschirm, dann beginnt die Ausgabe in der zweiten physischen Bildschirmspalte (da die erste Spalte für die etwaige Verwendung einer Attributstelle bei einem 3270-Terminal reserviert werden muss).

- Druckausgabe auf Papier:
  Wird die `DISPLAY`-Ausgabe auf Papier ausgedruckt, dann beginnt die Ausgabe ganz links, d.h. in Spalte 1.

- Abstandsfaktor:
  Standardmäßig wird zwischen zwei Ausgabeelementen eine Leerstelle eingefügt. Zwischen Ausgabespalten muss mindestens eine Leerspalte (reserviert für Terminal-Attribute) sein. Dieser Standardwert kann mit dem Session-Parameter `SF` überschrieben werden.

- Feldausgabe:
  Die Breite einer Ausgabespalte richtet sich nach der Länge des Feldes oder der Spaltenüberschrift, je nachdem, was länger ist (es sei denn, der Parameter `HW` wird verwendet).

  - Ist die Überschrift kürzer als das Feld, wird sie über der Spalte zentriert (es sei denn, mit dem Parameter `HC=L` bzw. `HC=R` wird eine linksbündige bzw. rechtsbündige Ausgabe veranlasst).

  - Ist das Feld kürzer als die Überschrift, wird das Feld linksbündig zur Überschrift ausgerichtet.

  - Bei alphanumerischen Feldern werden die Feldwerte linksbündig im Feld ausgegeben, bei numerischen rechtsbündig.

  - Mit dem Parameter `AD=L` kann auch bei numerischen Feldern eine linksbündige Ausgabe erreicht werden.

  - Mit dem Parameter `AD=R` kann bei alphanumerischen Feldern eine rechtsbündige Ausgabe erreicht werden.

  - Bei vertikalen Ausgaben richtet sich die Breite einer Spalte nach dem längsten Feldwert bzw. der längsten Überschrift (es sei denn, der Parameter `HW` wird verwendet).

- Vorzeichen:
  Bei der Ausgabe eines numerischen Feldes wird eine Stelle vor dem Feld für die Ausgabe eines Vorzeichens reserviert. Die Vorzeichenstelle kann mit dem Session-Parameter `SG` unterdrückt werden.

- Seitenumbruch:
  Natural prüft vor der Ausführung eines `DISPLAY`-Statements, wann ein Seitenumbruch erforderlich ist. Während der Ausführung des `DISPLAY`-Statements werden keine Kopf- oder Fußzeilen generiert.

## Beispiele

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

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

- Beispiel 3 — DISPLAY-Statement mit der Notation P*

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

- Beispiel 5 — DISPLAY-Statement mit horizontaler Ausgabe

- Beispiel 6 — DISPLAY-Statement mit vertikaler und horizontaler Ausgabe

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

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

### 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

### On this page

- Funktion
- Syntax-Beschreibung
- Standardwerte
- Beispiele