WRITE TITLE

#### Search Results

Search

# WRITE TITLE

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

This document covers the following topics:

- Function

- Restrictions

- Syntax Description

- Example

For an explanation of the symbols used in the syntax diagram, see Syntax Symbols.

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

Belongs to Function Group: Creation of Output Reports

## Function

The `WRITE TITLE` statement is used to override the default page title with a page title of your own. It is executed whenever a new page is initiated.

See also the following sections in the Programming Guide:

- Report Format and Control

- Report Specification - (rep) Notation

- Layout of an Output Page

- Page Titles, Page Breaks, Blank Lines

- Define Your Own Page Title - WRITE TITLE Statement

- Text Notation

### Processing

This statement is non-procedural, that is, its execution depends on an event, not on where in a program it is located.

If a report is produced by statements in different objects, the `WRITE TITLE` statement is only executed if it is contained in the same object as the statement that causes a new page to be initiated.

## Restrictions

- `WRITE TITLE` may be specified only once per report.

- `WRITE TITLE` cannot be specified within a special condition statement block.

- `WRITE TITLE` cannot be specified within a subroutine.

## Syntax Description

Operand Definition Table:

Operand | Possible Structure | Possible Formats | Referencing Permitted | Dynamic Definition
--- | --- | --- | --- | ---
`operand1` |  | S | A | G | N | A | U | N | P | I | F | B | D | T | L |  | G | O | yes | no
`operand2` | C | S |  |  |  |  |  | N | P | I |  | B |  |  |  |  |  |  | yes | no

Syntax Element Description:

Syntax Element | Description
--- | ---
`(rep)` | Report Specification: If multiple reports are to be produced, the notation `(rep)` may be used to specify the identification of the report for which the `WRITE TITLE` statement is applicable. As report identification, a value in the range `0 - 31` or a logical name which has been assigned using the `DEFINE PRINTER` statement may be specified. If `(rep)` is not specified, the `WRITE TITLE` statement applies to the first report (Report 0). For information on how to control the format of an output report created with Natural, see Report Format and Control (in the Programming Guide).
`LEFT JUSTIFIED` `UNDERLINED` | Page Title Justification and/or Underlining: By default, page titles are centered and not underlined. `LEFT JUSTIFIED` and `UNDERLINED` may be specified to override these defaults. If `UNDERLINED` is specified, the underlining character (system default or specified with the session parameter `UC` (Underlining Character) in a `FORMAT` statement) is printed underneath the title and runs the width of the line size (see session parameter `LS`). Natural first applies all spacing or tab specifications and creates the line before centering the whole line. For example, a notation of `10T` as the first element would cause the centered header to be positioned five positions to the right.
`statement-parameters` | Parameter Definition at Statement Level: One or more parameters, enclosed within parentheses, may be specified at statement level, that is, immediately after the `WRITE TITLE` statement. Each parameter specified in this manner will override the corresponding parameter previously specified in a `GLOBALS` command, `SET GLOBALS` (in Reporting Mode only) or `FORMAT` statement. If more than one parameter is specified, one or more blanks must be present between each entry. An entry may not be split between two statement lines. Note The parameter settings applied here will only be regarded for variable fields, but they have no effect on text-constants. If you would like to set field attributes for a text-constant, they have to be set explicitly for this element, see Parameter Definition at Element (Field) Level. For information on which parameters may be used, see List of Parameters (in the `WRITE` statement documentation).
`nX` `nT` `x/y` `T*field-name` `P*field-name` `/` | Format Notation and Spacing Elements: See Format Notation and Spacing Elements (below).
`'text'` `'c' (n)` `attributes` | Text/Attribute Assignment: See Text/Attribute Assignments (below).
`operand1` | Field to Be Displayed in Title: `operand1` represents the field(s) to be displayed within the title. Arrays with ranges that allow to vary the number of occurrences at execution time may not be specified.
`parameters` | Parameter Definition at Element (Field) Level: One or more parameters, enclosed within parentheses, may be specified at element (field) level, that is, immediately after `operand1`. Each parameter specified in this manner will override the corresponding parameter previously specified at statement level or in a `GLOBALS` command, `SET GLOBALS` (in Reporting Mode only) or `FORMAT` statement. If more than one parameter is specified, one or more blanks must be present between each entry. An entry may not be split between two statement lines. For information on which parameters may be used, see List of Parameters (in the `WRITE` statement documentation).
`SKIP operand2 LINES` | Lines to Be Skipped: `SKIP` may be used to cause lines to be skipped immediately after the title line. The number of lines to be skipped may be specified in `operand2` as a numeric constant or as the content of a numeric variable. Note `SKIP` after `WRITE TITLE` is always interpreted as the `SKIP` clause of the `WRITE TITLE` statement, and not as an independent statement. If you wish an independent `SKIP` statement after a `WRITE TITLE` statement, use a semicolon (;) to separate the two statements from one another.

#### Format Notation and Spacing Elements

Syntax Element | Description
--- | ---
`nX` | Column Spacing: This notation inserts `n` spaces between columns. `n` must not be zero.
`nT` | Tab Setting: The `nT` notation causes positioning (tabulation) to print position `n`. Backward positioning is not permitted.
`x/y` | x/y Positioning: Causes the next element to be placed `x` lines below the output of the last statement, beginning in column `y`. `y` must not be zero. Backward positioning in the same line is not permitted.
`T*field-name` | Field-Related Positioning: The `T*` notation causes positioning to a specific print position of a field used in a previous `DISPLAY` statement. Backward positioning is not permitted.
`P*field-name` | Field- and Line-Related Positioning: The `P*` notation causes positioning to a specific print position and line of a field used in a previous `DISPLAY` statement. It is most often used in conjunction with vertical printing mode. Backward positioning is not permitted.
`/` | Line Advance - Slash Notation: When placed between fields or text elements, a slash (/) causes positioning to the beginning of the next print line.

#### Text/Attribute Assignments

Syntax Element | Description
--- | ---
`'text'` | Text Assignment: The character string enclosed by single quotes is displayed.
`'c'(n)` | Character Repetition: The character enclosed by single quotes is displayed n times immediately before the field value.
`attributes` | Field Representation and Color Attributes: It is possible to assign various attributes for text/field display. These attributes and the syntax that may be used are described in the section Output Attributes below. Examples:
    WRITE TITLE 'TEXT' (BGR)
    WRITE TITLE 'TEXT' (B)
    WRITE TITLE 'TEXT' (BBLC)

#### Output Attributes

attributes indicates the output attributes to be used for text display. Attributes can be:

| `AD`=ad-value `BX`=bx-value `CD`=cd-value `PM`=pm-value |
| ad-value cd-value |

Where:

`ad-value`, `bx-value`, `cd-value` and `pm-value` denote the possible values of the corresponding session parameters `AD`, `BX`, `CD` and `PM` described in the relevant sections of the Parameter Reference documentation.

The compiler actually accepts more than one attribute value for an output field. For example, you can specify: `AD=BDI`. In such a case, however, only the last value applies. In the given example, only the value `I` becomes effective and the output field is displayed intensified.

For an alphanumeric/Unicode constant (Natural data format A or U), you can specify `ad-value` and/or `cd-value` without preceding `CD=` or `AD=`, respectively. The single value entered is then checked against all possible `CD` values first. For example: a value of `IRE` will be interpreted as intensified/red but not as intensified/right-justified/mandatory. You cannot combine a single `cd-value` or `ad-value` with a value preceded by `CD=` or `AD=`.

## Example

    ** Example 'WTIEX1': WRITE  (with TITLE option)
    ************************************************************************
    DEFINE DATA LOCAL
    1 EMPL-VIEW VIEW OF EMPLOYEES
      2 NAME
      2 FIRST-NAME
      2 CITY
      2 JOB-TITLE
    END-DEFINE
    *
    *
    FORMAT LS=70
    *
    WRITE TITLE LEFT JUSTIFIED UNDERLINED
          *TIME 3X 'PEOPLE LIVING IN NEW YORK CITY'
          11X 'PAGE:' *PAGE-NUMBER
    SKIP 1
    *
    FIND EMPL-VIEW WITH CITY = 'NEW YORK'
      DISPLAY NAME FIRST-NAME 3X JOB-TITLE
    END-FIND
    END

#### Output of Program WTIEX1:

    09:33:16.5   PEOPLE LIVING IN NEW YORK CITY           PAGE:      1
    ---------------------------------------------------------------------

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

    RUBIN                SYLVIA                 SECRETARY
    WALLACE              MARY                   ANALYST

### On this page

- Function
- Restrictions
- Syntax Description
- Example