WRITE TRAILER

#### Search Results

Search

# WRITE TRAILER

`WRITE` | [(rep)] `TRAILER` `[LEFT` [`JUSTIFIED`]] [`UNDERLINED`] |
| [(statement-parameters )] |
|  |  | n `X` |  |  |  |  |
| n `T` | 'text' [(attributes)]
| `x/y` | 'c'(n) [(attributes)]
| T*field-name | ['='] operand1 [(parameters)]
| P*field-name |
| /
| [`SKIP` operand2 [`LINES`]] |  |

Dieses Dokument behandelt folgende Themen:

- Funktion

- Einschränkungen

- 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` | `PRINT` | `SKIP` | `SUSPEND IDENTICAL SUPPRESS` | `WRITE` | `WRITE TITLE`

Gehört zur Funktionsgruppe: Erstellen von Ausgabe-Reports

## Funktion

Das Statement `WRITE TRAILER` dient dazu, am Ende einer Ausgabeseite eine Fußzeile auszugeben.

Siehe auch die folgenden Abschnitte im Leitfaden zur Programmierung:

- Steuerung der Ausgabe von Daten

- Report-Spezifikation − Notation (rep)

- Layout einer Ausgabeseite

- Seiten-Fußzeile − das WRITE TRAILER-Statement

- Text-Notation

### Verarbeitung

Dieses Statement ist nicht-prozedural (das heißt, seine Ausführung hängt von einem Ereignis ab, nicht davon, wo im Programm es steht).

Das Statement wird immer dann ausgeführt, wenn eine “End-of-Page”- oder “End-of-Data”- Bedingung auftritt, oder wenn aufgrund eines `SKIP`- oder `NEWPAGE`-Statements ein Seitenvorschub erfolgt. Es wird nicht ausgeführt, wenn ein Seitenvorschub aufgrund eines `EJECT`-Statements erfolgt.

Ob eine End-of-Page-Bedingung gegeben ist, wird erst überprüft, nachdem ein `DISPLAY`- oder `WRITE`-Statement vollständig ausgeführt ist; ist die logische Seitenlänge nicht richtig gesetzt, kann es vorkommen, dass die `DISPLAY`-/`WRITE`-Ausgabe bereits das Ende einer physischen Ausgabeseite überschritten hat, bevor auf der logischen Seite eine End-of-Page-Bedingung auftritt.

Wenn ein Report durch Statements in verschiedenen Objekten erzeugt wird, wird das `WRITE TRAILER`-Statement nur ausgeführt, wenn es in demselben Objekt steht wie das Statement, das die End-of-Page-Bedingung auslöst.

### Logische Seitenlänge

Um sicherzustellen, dass eine mit `WRITE TRAILER` definierte Fußzeile noch auf eine ausgegebene physische Seite passt, sollte die Länge der vom Programm erzeugten logischen Seite (mittels des Session-Parameters `PS`) entsprechend kleiner als die physische Seitenlänge gesetzt werden.

## Einschränkungen

- `WRITE TRAILER` darf höchstens einmal pro Ausgabe-Report verwendet werden.

- `WRITE TRAILER` darf nicht an eine logische Bedingung geknüpft sein.

- `WRITE TRAILER` darf nicht in einer Subroutine stehen.

## 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
operand2 | C | S |  |  |  |  |  | N | P | I |  | B |  |  |  |  |  |  | ja | nein

Syntax-Element-Beschreibung:

Syntax-Element | Beschreibung
--- | ---
`(rep)` | Report-Spezifikation: Erzeugt ein Programm mehrere Reports, kann mit der Notation `(rep)` ein bestimmter anderer Report angegeben werden, auf den sich das Statement `WRITE TRAILER` beziehen soll. Es kann ein Wert von 0 bis 31 oder ein logischer Name, der mit einem `DEFINE PRINTER`-Statement zugewiesen wurde, angegeben werden. Wenn `(rep)` nicht angegeben wird, bezieht sich das Statement `WRITE TRAILER` auf den ersten Report (Report 0). Informationen, wie Sie das Format eines mit Natural erstellten Ausgabe-Reports steuern, finden Sie im Abschnitt Steuerung der Ausgabe von Daten im Leitfaden zur Programmierung.
`LEFT JUSTIFIED` `UNDERLINED` | Fußzeilenausrichtung und Unterstreichung: Normalerweise werden Fußzeilen zentriert und ohne Unterstreichung ausgegeben. Eine linksbündige Ausrichtung der Fußzeile erreichen Sie durch die Angabe des Schlüsselwortes `LEFT JUSTIFIED`. Eine unterstrichene Fußzeile erhalten Sie durch Angabe des Schlüsselwortes `UNDERLINED`; als Unterstreichungszeichen wird das mit dem Parameter `UC` (auf Session-Ebene oder in einem `FORMAT`-Statement) definierte Zeichen verwendet. Die Unterstreichung erstreckt sich über die ganze Zeile unter der Fußzeile (entsprechend der mit dem Parameter LS definierten Zeilenlänge). Bevor die Zeile zentriert wird, führt Natural erst alle Leerstellen- und Tabulatoranweisungen aus. Bei einer Tabulator-Notation von `10T`, zum Beispiel, rückt der Text bei anschließender Zentrierung in eine Position 5 Stellen rechts von der Mitte.
`statement-parameters` | Parameter-Definition auf Statement-Ebene: Unmittelbar nach dem `WRITE TRAILER`-Statement können Sie in Klammern einzelne Session-Parameter setzen. Diese Parameterwerte haben dann für das betreffende Statement Gültigkeit vor auf übergeordneter Ebene mittels `GLOBALS`-Kommando, `SET GLOBALS`- (nur im Reporting Mode) oder `FORMAT`-Statement gesetzten Parameterwerten. Wenn Sie mehrere Parameter angeben, müssen Sie sie durch ein oder mehrere Leerzeichen voneinander trennen. Eine einzelne Parameterangabe darf sich nicht über zwei Sourcecode-Zeilen erstrecken. Anmerkung Die hier gültigen Parameter-Einstellungen werden nur bei Variablenfelderberücksichtigt, haben und keine Auswirkung auf Textkonstanten. Wenn Sie Feldattribute für eine Textkonstante setzen möchten, müssen sie explizit für dieses Element gesetzt werden; siehe Parameter-Definition auf Element-Ebene. Informationen zur Benutzung der Parameter siehe Liste der Parameter in der `WRITE`-Statement-Dokumentation.
`nX` `nT` `x/y` `T*field-name` `P*field-name` `/` | Format-Notation und Abstandselemente: Siehe Format-Notation und Abstandselemente (weiter unten).
`'text'` `'c'(n)` `attributes` | Text/Attribut-Zuweisung: Siehe Text/Attribut-Zuweisungen (weiter unten).
`operand1` | Fußzeilen-Informationen: Als operand1 können Sie ein oder mehrere Feld/er angeben, die in der Fußzeile ausgegeben werden sollen. Arrays mit Bereichen, die es ermöglichen, die Anzahl der Ausprägungen zur Ausführungszeit zu variieren, können nicht angegeben werden.
`parameters` | Parameter-Definition auf Element-Ebene: Ein einzelner oder mehrere in Anführungszeichen stehende Parameter können auf Element-Ebene unmittelbar hinter operand1 angegeben werden. Jeder auf diese Art angegebene Parameter überschreibt den entsprechenden, vorher auf Statement-Ebene oder in einem `GLOBALS`-Kommando, `SET GLOBALS`- (nur im Reporting Mode) oder `FORMAT`-Statement angegebenen Parameter. Wenn mehr als ein Parameter angegeben wird, müssen ein oder mehr Leerzeichen zwischen jedem Eintrag stehen. Eine einzelne Parameterangabe darf sich nicht über zwei Sourcecode-Zeilen erstrecken. Informationen zur Benutzung der Parameter; siehe Liste der Parameter (beim `WRITE`-Statement).
`SKIP operand2 LINES` | Einfügen von Leerzeilen nach der Fußzeile: Mit der `SKIP`-Klausel können Sie nach der Fußzeile Leerzeilen einfügen. Mit operand2 geben Sie an, wieviele Leerzeilen auf die Fußzeile folgen sollen; dies kann entweder eine numerische Konstante oder der Inhalt einer numerischen Variablen sein. Anmerkung `SKIP` nach `WRITE TRAILER` wird immer als `SKIP`-Klausel des `WRITE TRAILER`-Statements interpretiert, und nicht als eigenständiges Statement. Falls Sie ein eigenständiges SKIP-Statement nach einem `WRITE TRAILER`-Statement wünschen, trennen Sie die beiden Statements durch ein Semikolon (;) voneinander.

#### Format-Notation und Abstandselemente

Syntax-Element | Beschreibung
--- | ---
`nX` | Spaltenabstand: Mit dieser Notation fügen Sie n Leerzeichen zwischen den Spalten ein. n darf nicht 0 sein.
`nT` | Setzen der Tabulatoren: Die Notation `nT` bewirkt die Positionierung (Tabulierung) an die Druck-Position `n`. Eine Spalte, die in derselben Ausgabezeile bereits belegt ist, darf nicht angegeben werden.
`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. Eine Spalte, die in derselben Ausgabezeile bereits belegt ist, darf nicht angegeben werden.

#### Text/Attribut-Zuweisungen

Syntax-Element | Beschreibung
--- | ---
`'text'` | Text-Zuweisung: Es wird die in Apostrophen stehende Zeichenkette angezeigt.
`'c'(n)` | Zeichen-Wiederholung: Das in Apostrophen stehende Zeichen (character)wird unmittelbar vor dem Feldwert `n` mal angezeigt.
`attributes` | Felddarstellung und Farbattribute: Es ist möglich, verschiedene Attribute für die Text/Feldanzeige zuzuweisen. Diese Attribute und die Syntax, die benutzt werden kann, sind im Abschnitt Ausgabeattribute weiter unten beschrieben. Beispiele:
    WRITE TRAILER 'TEXT' (BGR)
    WRITE TRAILER 'TEXT' (B)
    WRITE TRAILER 'TEXT' (BBLC)
`T*field-name` | Feldbezogene Positionierung: Die Notation `T*` bewirkt die Positionierung an eine bestimmte Druckposition eines Feldes, das in einem vorangegangenen `DISPLAY`-Statement benutzt wurde. Eine Rückwärtspositionierung ist nicht zulässig.
`P*field-name` | Feld- und Zeilenbezogene Positionierung: Die Notation `P*` bewirkt die Positionierung an eine spezifische Druckposition und Zeile eines Feldes, das in einem vorangegangenen `DISPLAY`-Statement benutzt wurde. Sie wird am häufigsten in Verbindung mit dem vertikalen Druckmodus verwendet. Eine Rückwärtspositionierung ist nicht zulässig.
`/` | Zeilenvorschub - Schrägstrich-Notation: Ein Schrägstrich (/) bewirkt bei Platzierung zwischen Feldern oder Textelementen eine Positionierung an den Anfang der nächsten Druckzeile.

#### Ausgabeattribute

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.

## Beispiel

    ** Example 'WTLEX1': WRITE (with TRAILER option)
    ************************************************************************
    DEFINE DATA LOCAL
    1 EMPL-VIEW VIEW OF EMPLOYEES
      2 NAME
      2 FIRST-NAME
      2 CITY
      2 JOB-TITLE
    END-DEFINE
    *
    FORMAT PS=15
    WRITE TITLE LEFT JUSTIFIED UNDERLINED
          *TIME 3X 'PEOPLE LIVING IN BARCELONA'
          14X 'PAGE:' *PAGE-NUMBER
    SKIP 1
    *
    WRITE TRAILER LEFT JUSTIFIED UNDERLINED
          / 'CITY OF BARCELONA REGISTER'
    *
    LIMIT 10
    FIND EMPL-VIEW WITH CITY = 'BARCELONA'
      DISPLAY NAME FIRST-NAME 3X JOB-TITLE
    END-FIND
    END

Ausgabe des Programms `WTLEX1` - Seite 1:

    09:36:09.5   PEOPLE LIVING IN BARCELONA              PAGE:      1
    -------------------------------------------------------------------------------

            NAME              FIRST-NAME                 CURRENT
                                                        POSITION
    -------------------- --------------------   -------------------------

    DEL CASTILLO         ANGEL                  EJECUTIVO DE VENTAS
    GARCIA               M. DE LAS MERCEDES     SECRETARIA
    GARCIA               ENDIKA                 DIRECTOR TECNICO
    MARTIN               ASUNCION               SECRETARIA
    MARTINEZ             TERESA                 SECRETARIA
    YNCLAN               FELIPE                 ADMINISTRADOR
    FERNANDEZ            ELOY                   OFICINISTA
    TORRES               ANTONI                 OBRERA

    CITY OF BARCELONA REGISTER
    -------------------------------------------------------------------------------

Ausgabe des Programms `WTLEX1` - Seite 2:

    09:37:26.0   PEOPLE LIVING IN BARCELONA              PAGE:      2
    -------------------------------------------------------------------------------

            NAME              FIRST-NAME                 CURRENT
                                                        POSITION
    -------------------- --------------------   -------------------------

    RODRIGUEZ            VICTORIA               SECRETARIA
    GARCIA               GERARDO                INGENIERO DE PRODUCCION

    CITY OF BARCELONA REGISTER
    -------------------------------------------------------------------------------

### On this page

- Funktion
- Einschränkungen
- Syntax-Beschreibung
- Beispiel