BEFORE [BREAK] [PROCESSING] |
|
statement
|
END-BEFORE |
[BEFORE [BREAK] [PROCESSING] |
||
|
|
statement |
|
DO
statement
DOEND |
||
Dieser Abschnitt behandelt folgende Themen:
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
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:
Das Statement BEFORE BREAK PROCESSING kann nur in Verbindung mit einer
Verarbeitungsschleife verwendet werden, die mit den folgenden Statements initiiert
wird:
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-Element-Beschreibung:
| Syntax-Element | Beschreibung |
|---|---|
statement... |
Statement(s) für die Break-Verarbeitung:
Im Structured Mode muss anstelle von
Wird keine an einen Gruppenwechsel geknüpfte Verarbeitung ausgeführt (d.h. wenn
die betreffende Verarbeitungsschleife kein |
END-BEFORE |
Ende des BEFORE BREAK PROCESSING-Statements:
Im Structured Mode muss das reservierte Natural-Wort Im Reporting Mode werden die Statements |
** 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