BEFORE BREAK PROCESSING

Structured Mode-Syntax

BEFORE [BREAK] [PROCESSING]
   statement ../graphics/dot3.gif
END-BEFORE

Reporting Mode-Syntax

[BEFORE [BREAK] [PROCESSING]

statement

DO statement ../graphics/dot3.gif DOEND

Dieses Dokument 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


Funktion

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:

Einschränkungen

  • 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-Beschreibung

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

** 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