PRINT

#### Search Results

Search

# PRINT

`PRINT` [(rep)] [`NOTITLE`] [`NOHDR`] [(statement-parameters)]
|  |  | n `X` |  |  |  |  | 'text' ' [(attributes)] |  |
n `T` | 'c'(n) [(attributes )]
/ | ['='] operand1 [(parameters)]

Dieses Dokument behandelt folgende Themen:

- Funktion

- Syntax-Beschreibung

- Beispiel

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` | `DISPLAY` | `EJECT` | `FORMAT` | `NEWPAGE` | `SKIP` | `SUSPEND IDENTICAL SUPPRESS` | `WRITE` | `WRITE TITLE` | `WRITE TRAILER`

Gehört zur Funktionsgruppe: Erstellen von Ausgabe-Reports

## Funktion

Das Statement `PRINT` dient dazu, Ausgaben im freien Format zu erzeugen.

Das `PRINT`-Statement unterscheidet sich vom `WRITE`-Statement in folgenden Punkten:

- Die Ausgabelänge der einzelnen Operanden ergibt sich aus der Länge der tatsächlich ausgegebenen Werte und nicht aus der Länge der verwendeten Felder. Vorangestellte Nullen (bei numerischen Werten) und nachgestellte Leerzeichen (bei alphanumerischen Werten) werden nicht mit ausgegeben.

  Mit dem Session-Parameter `AD` können Sie festlegen, ob numerische Werte links- oder rechtsbündig ausgegeben werden sollen: mit `AD=L` werden einem numerischen Wert nachfolgende Leerstellen nicht ausgegeben; mit `AD=R` werden einem numerischen Wert vorangestellte Leerzeichen mit ausgegeben.

- Überschreitet die Ausgabe die vorgegebene Zeilenlänge (Parameter `LS`), wird die Ausgabe in der nächsten Zeile wie folgt fortgesetzt:

  Eine alphanumerische Konstante oder der Inhalt einer alphanumerischen Variablen (ohne Editiermaske) wird ab dem letzten auf der aktuellen Zeile ausgegebenen Leerzeichen oder Zeichen, das weder ein Buchstabe noch eine Ziffer ist, abgetrennt. Der erste Teil des Wertes verbleibt auf der aktuellen Zeile, der abgetrennte Teil wird in der nächsten Zeile ausgegeben. Führende Leerzeichen im zweiten Teil werden entfernt und Leerzeilen werden dadurch unterdrückt.

  Bei allen anderen Operanden wird der gesamte Wert, der nicht mehr in die aktuelle Zeile passt, in der nächsten Zeile ausgegeben.

## Syntax-Beschreibung

Operanden-Definitionstabelle:

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

Syntax-Element-Beschreibung:

Syntax-Element | Beschreibung
--- | ---
`(rep)` | Report-Spezifikation: Mit der Notation `(rep)` kann ein bestimmter anderer Report angegeben werden, 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 nichts anderes angegeben wird, bezieht sich das `PRINT`-Statement auf den ersten Report (Report 0). Wenn diese Druckdatei für Natural als PC definiert wird, wird der Report auf den PC heruntergeladen, siehe Beispiel 2. Informationen darüber, wie Sie das Format eines mit Natural erstellten Ausgabe-Reports steuern, siehe Steuerung der Ausgabe von Daten im Leitfaden zur Programmierung.
- `NOTITLE` | Unterdrückung der Standard-Seitenüberschrift: Für jede über ein `PRINT`-Statement ausgegebene Seite generiert Natural eine Titelzeile, die die laufende Seitennummer, die Uhrzeit und das Datum enthält. Die Uhrzeit wird zu Beginn der Session (TP-Betrieb) oder zu Beginn des Jobs (Batch-Betrieb) gesetzt. Die generierte Titelzeile kann entweder durch eine eigene mit einem `WRITE TITLE`-Statement angegebene Titelzeile überschrieben oder durch eine `NOTITLE`-Klausel im `PRINT`-Statement unterdrückt werden. Beispiele: Generierte Titelzeile wird ausgegeben:
      PRINT NAME
- Eigene Titelzeile wird ausgegeben:
      PRINT NAME WRITE TITLE 'user-title'
- Keine Titelzeile wird ausgegeben:
      PRINT NOTITLE NAME
Wenn die `NOTITLE`-Option verwendet wird, gilt sie für alle `DISPLAY`-, `PRINT`- und `WRITE`-Statements im selben Objekt, die Daten auf denselben Report schreiben.
`NOHDR` | Unterdrückung der Spaltenüberschrift: Das `PRINT`-Statement selbst erzeugt keine Spaltenüberschriften. Wenn Sie allerdings das `PRINT`-Statement zusammen mit einem `DISPLAY`-Statement verwenden, können Sie mit der Option `NOHDR` des `PRINT`-Statements die vom `DISPLAY`-Statement generierten Spaltenüberschriften unterdrücken: Die `NOHDR`-Option ist nur relevant, wenn das `PRINT`-Statement nach einem `DISPLAY`-Statement steht, die Ausgabe sich insgesamt über mehr als eine Seite erstreckt und die Ausführung des `PRINT`-Statements zur Ausgabe einer neuen Seite führt. Ohne `NOHDR`-Option würden auf dieser neuen Seite die `DISPLAY`-Spaltenüberschriften ausgegeben, mit `NOHDR` werden sie dort nicht ausgegeben.
`statement-parameters` | Parameter-Definition auf Statement-Ebene: Unmittelbar nach dem Schlüsselwort `PRINT` selbst oder nach einem der auszugebenden Felder können auf Statement-Ebene in Klammern Session-Parameter gesetzt werden. Diese Parameter haben dann für das jeweilige Statement oder Feld Gültigkeit statt der betreffenden mit einem `GLOBALS`-Kommando, `SET GLOBALS`- (nur im Reporting Mode) oder `FORMAT`-Statement gesetzten Parameter. 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. Die hier gültigen Parameter-Einstellungen kommen nur für Variablen-Felder in Betracht, haben aber keine Auswirkungen auf Text-Konstanten. Wenn Sie Feldattribute für eine Text-Konstante setzen möchten, dann müssen Sie explizit für dieses Element gesetzt werden, siehe Parameter-Definition auf Element- Ebene. Siehe auch: Liste der Parameter Beispiel für Parameter-Benutzung auf Statement- und Element-Ebene.
`nX, nT, /` | Siehe Feldpositionierung, Text, Attributzuweisung weiter unten.

### Liste der Parameter

Parameter, die beim PRINT-Statement angegeben werden können: | Spezifikation:
--- | ---
S = auf Statement-Ebene
E =auf Element-Ebene
AD | Attribute Definition | SE
AL | Alphanumeric Length for Output | 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
EMU | Unicode Edit Mask | E
FL | Floating Point Mantissa Length | SE
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
SG | Sign Position | SE
ZP | Zero Printing | SE

Beschreibungen der einzelnen Parameter entnehmen Sie bitte der Parameter-Referenz.

### Beispiel für Parameter-Benutzung auf Statement- und Element-Ebene

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

### Feldpositionierung, Text, Attributzuweisung

|  | n `X` |  |  |  | 'text' [(attributes)] |  |
n `T` |  | 'c' ( n ) [(attributes)]
/ |  | ['='] operand1 [(parameters)]

#### Feldpositionierungsnotationen

Syntax-Element | Beschreibung
--- | ---
`nX` | Spaltenabstand: Mit dieser Notation können Sie zwischen den auszugebenden Werten n Leerstellen einfügen. n darf nicht `0` sein. Beispiel:
    PRINT NAME 5X SALARY
`nT` | Setzen von Tabulatoren: Mit dieser Notation können Sie Tabulatoren setzen, d.h. die Ausgabe eines Wertes beginnt ab Spalte n. Wird ein Tabulator gesetzt, dessen Position bereits durch einen anderen ausgegeben Wert besetzt ist, erfolgt ein Zeilenvorschub. Im folgenden Beispiel wird `NAME` ab Spalte 25 ausgegeben und `SALARY` ab Spalte 50:
    PRINT 25T NAME 50T SALARY
`/` | Zeilenvorschub − Schrägstrich-Notation: Mit einem Schrägstrich (/) bewirken Sie zwischen zwei Feldern oder Textelementen einen Zeilenvorschub. Beispiel:
    PRINT NAME / SALARY

#### Text-/Attributzuweisung

Syntax-Element | Beschreibung
--- | ---
`'text'` | Zuweisung von Text: Eine in Apostrophen angegebene Zeichenkette `'text'` wird als Text ausgegeben. Beispiel:
    PRINT 'EMPLOYEE' NAME 'MARITAL/STATUS' MAR-STAT
`'c' (n)` | Wiederholung von Zeichen: Wie `'text'`. Ausnahme: das Zeichen `c` wird `n`-mal unmittelbar vor dem Feldwert ausgegeben. Beispiel:
    PRINT '*' (5) '=' NAME
`'='` | Position des Feldinhalts hinter Feldüberschrift: Ein Gleichheitszeichen in Apostrophen unmittelbar vor einem Feld bewirkt, dass unmittelbar vor dem Feldwert der Name des Feldes ausgegeben wird (wie im `DEFINE DATA`-Statement oder im DDM definiert). Beispiel:
    PRINT '=' NAME
`operand1` | Auszugebendes Feld: Als operand1 geben Sie das auszugebende Feld an.
`parameters` | Parameter-Definition auf Elementebene (Feldebene): Unmittelbar nach operand1 können Sie in Klammern einen oder mehrere Parameter (siehe obige Tabelle) angeben. Diese Parameter haben dann für das jeweilige Feld Gültigkeit statt der betreffenden, auf Statement-Ebene mit einem `GLOBALS`-Kommando, `SET GLOBALS`- (nur im Reporting Mode) oder `FORMAT`-Statement gesetzten Parameter. 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: Statement-Parameter Beispiel der Parameter-Benutzung auf Statement- und Element-Ebene

#### Ausgabeattribute

attributes dient dazu, den ausgegebenen Feldern/Textelementen Anzeige- und Farbattribute zuzuordnen. Sie können die folgenden Attribute angeben:

|  | `AD`=AD-value `BX`=BX-value `CD`=CD-value `PM`=PM-value |  |
| AD-value CD-value |

Die möglichen Parameterwerte sind in den folgenden Abschnitten der Parameter-Referenz aufgeführt:

- AD - Attribute Definition, Abschnitt Feldanzeige

- CD - Color Definition

- BX - Box Definition

- PM - Print Mode

Anmerkung
Der Compiler akzeptiert mehr als einen Attributwert für ein Ausgabefeld. Beispielsweise können Sie angeben: `AD=BDI`. In einem solchen Fall gilt allerdings nur der letzte Wert. In dem vorliegenden Beispiel greift nur der Wert `I`, und das Ausgabefeld wird intensiviert dargestellt.

## Beispiel

- Beispiel 1 — PRINT-Statement

- Beispiel 2 — PRINT-Statement mit auf den PC herunterzuladendem Report

### Beispiel 1 — PRINT-Statement

    ** Example 'PRTEX1': PRINT
    ************************************************************************
    DEFINE DATA LOCAL
    1 EMPLOY-VIEW VIEW OF EMPLOYEES
      2 NAME
      2 FIRST-NAME
      2 CITY
      2 JOB-TITLE
      2 ADDRESS-LINE (2)
    END-DEFINE
    *
    LIMIT 1
    READ EMPLOY-VIEW BY CITY
      /*
      WRITE NOTITLE 'EXAMPLE 1:'
                 // 'RESULT OF WRITE STATEMENT:'
      WRITE       /  NAME  ',' FIRST-NAME ':' JOB-TITLE '*' (30)
      WRITE       / 'RESULT OF PRINT STATEMENT:'
      PRINT       /  NAME  ',' FIRST-NAME ':' JOB-TITLE '*' (30)
      /*
      WRITE      // 'EXAMPLE 2:'
                 // 'RESULT OF WRITE STATEMENT:'
      WRITE       /  NAME 60X ADDRESS-LINE (1:2)
      WRITE       / 'RESULT OF PRINT STATEMENT:'
      PRINT       /  NAME 60X ADDRESS-LINE (1:2)
      /*
    END-READ
    END

Ausgabe des Programms `PRTXEX1`:

    EXAMPLE 1:

    RESULT OF WRITE STATEMENT:

    SENKO                , WILLIE               : PROGRAMMER
    ******************************

    RESULT OF PRINT STATEMENT:

    SENKO , WILLIE : PROGRAMMER ******************************

    EXAMPLE 2:

    RESULT OF WRITE STATEMENT:

    SENKO
    2200 COLUMBIA PIKE    #914

    RESULT OF PRINT STATEMENT:

    SENKO                                                            2200 COLUMBIA
    PIKE  #914

### Beispiel 2 — PRINT-Statement mit auf den PC herunterzuladendem Report

    ** Example 'PCPIEX1': PRINT 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
      PRINT (7) 5T CITY 20T NAME 40T PERSONNEL-ID    /* (7) designates
                                                     /* the output file
                                                     /* (here the PC).
    END-FIND
    END

### On this page

- Funktion
- Syntax-Beschreibung
- Beispiel