BEFORE BREAK PROCESSING

#### Search Results

Search

# BEFORE BREAK PROCESSING

#### Structured Mode-Syntax

`BEFORE` [`BREAK`] [`PROCESSING`]
statement
`END-BEFORE`

#### Reporting Mode-Syntax

[`BEFORE` [`BREAK`] [`PROCESSING`]
| statement |
`DO` statement `DOEND`

Dieses Dokument behandelt folgende Themen:

- Funktion BEFORE BREAK PROCESSING

- Einschränkungen

- Syntax-Beschreibung BEFORE BREAK PROCESSING

- Beispiel für BEFORE BREAK PROCESSING-Statement

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

Verwandte Statements: `ACCEPT/REJECT` | `AT BREAK` | `AT START OF DATA` | `AT END OF DATA` | `BACKOUT TRANSACTION` | `DELETE` | `END TRANSACTION` | `FIND` | `GET` | `GET SAME` | `GET TRANSACTION` | `HISTOGRAM` | `LIMIT` | `PASSW` | `PERFORM BREAK PROCESSING` | `READ` | `RETRY` | `STORE` | `UPDATE`

Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen

## Funktion BEFORE BREAK PROCESSING

Das Statement `BEFORE BREAK PROCESSING` wird im Zusammenhang mit einem automatischen Gruppenwechsel verwendet, und zwar um Verarbeitungen anzugeben, die ausgeführt werden sollen:

- bevor der Wert des Gruppenwechsel-Kontrollfeldes geprüft wird;

- bevor ein `AT BREAK`-Statement-Block ausgeführt wird;

- bevor Natural-Systemfunktionen ausgewertet werden.

Meistens wird `BEFORE BREAK PROCESSING` eingesetzt, um Benutzervariablen zu initialisieren oder zu berechnen, die bei einer anschließenden Gruppenwechsel-Verarbeitung (siehe `AT BREAK`-Statement) benutzt werden sollen.

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

Siehe auch die folgenden Abschnitte im Leitfaden zur Programmierung:

- Gruppenwechsel

- BEFORE BREAK PROCESSING-Statement

- Beispiel für BEFORE BREAK PROCESSING-Statement

## Einschränkungen

- Das Statement `BEFORE BREAK PROCESSING` kann nur in Verbindung mit einer Verarbeitungsschleife verwendet werden, die mit den folgenden Statements initiiert wird:

  - `FIND`

  - `READ`

  - `HISTOGRAM`

  - `SORT`

  - `READ WORK FILE`

  In einer Verarbeitungsschleife darf höchstens ein `BEFORE BREAK PROCESSING`-Statement stehen. Das Statement darf an beliebiger Stelle innerhalb einer Schleife stehen und bezieht sich immer auf die Schleife, in der es steht.

- Ein `BEFORE BREAK PROCESSING`-Statement darf nicht in Verbindung mit einem `PERFORM BREAK PROCESSING`-Statement verwendet werden.

## Syntax-Beschreibung BEFORE BREAK PROCESSING

Syntax-Element-Beschreibung:

Syntax-Element | Beschreibung
--- | ---
`statement...` | Statement(s) für die Break-Verarbeitung: Im Structured Mode muss anstelle von `statement` je nach Situation eines oder mehrere passende Statements angeben werden. Siehe Beispiel weiter unten Wird keine an einen Gruppenwechsel geknüpfte Verarbeitung ausgeführt (d.h. wenn die betreffende Verarbeitungsschleife kein `AT BREAK`-Statement enthält), dann wird der `BEFORE BREAK PROCESSING`-Statement-Block nicht ausgeführt.
`END-BEFORE` | Ende des BEFORE BREAK PROCESSING-Statements: Im Structured Mode muss das reservierte Natural-Wort `END-BEFORE` zum Beenden des `BEFORE BREAK PROCESSING`-Statements benutzt werden. Im Reporting Mode werden die Statements `DO ... DOEND` benutzt, um je nach Situation eines oder mehrere passende Statements anzugeben, und um das `BEFORE BREAK PROCESSING`-Statement zu beenden. Falls Sie nur ein einziges Statement angeben, können Sie die Statements `DO ... DOEND` weglassen. Das ist jedoch nicht im Sinne einer guten Kodierpraxis und wird nicht empfohlen.
`statement ...` `DO statement ... DOEND`

## Beispiel für BEFORE BREAK PROCESSING-Statement

    ** Example 'BBPEX1': BEFORE BREAK PROCESSING
    ************************************************************************
    DEFINE DATA LOCAL
    1 EMPLOY-VIEW VIEW OF EMPLOYEES
      2 CITY
      2 NAME
      2 SALARY (1)
      2 BONUS  (1,1)
    *
    1 #INCOME  (P11)
    END-DEFINE
    *
    LIMIT 7
    READ EMPLOY-VIEW BY CITY = 'L'
      /*
     BEFORE BREAK PROCESSING
        COMPUTE #INCOME = SALARY (1) + BONUS (1,1)
      END-BEFORE
      /*
      AT BREAK OF CITY
        WRITE NOTITLE  'AVERAGE INCOME FOR' OLD (CITY) 20X AVER(#INCOME) /
      END-BREAK
      /*
      DISPLAY CITY 'NAME' NAME 'SALARY' SALARY (1) 'BONUS' BONUS (1,1)
    END-READ
    END

Ausgabe des Programms `BBPEX1`:

            CITY                 NAME           SALARY     BONUS
    -------------------- -------------------- ---------- ----------

    LA BASSEE            HULOT                    165000      70000
    AVERAGE INCOME FOR LA BASSEE                                     235000

    LA CHAPELLE ST LUC   GUILLARD                 124100      23000
    LA CHAPELLE ST LUC   BERGE                    198500      50000
    LA CHAPELLE ST LUC   POLETTE                  124090      23000
    LA CHAPELLE ST LUC   DELAUNEY                 115000      23000
    LA CHAPELLE ST LUC   SCHECK                   125600      23000
    LA CHAPELLE ST LUC   KREEBS                   184550      50000
    AVERAGE INCOME FOR LA CHAPELLE ST LUC                            177306

### On this page

- Funktion BEFORE BREAK PROCESSING
- Einschränkungen
- Syntax-Beschreibung BEFORE BREAK PROCESSING
- Beispiel für BEFORE BREAK PROCESSING-Statement