PERFORM BREAK PROCESSING

PERFORM BREAK [PROCESSING] [(r)]
  AT BREAK statement

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 | BEFORE BREAK PROCESSING | DELETE | END TRANSACTION | FIND | GET | GET SAME | GET TRANSACTION DATA | HISTOGRAM | LIMIT | PASSW | READ | RETRY | STORE | UPDATE

Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen


Funktion

Das Statement PERFORM BREAK PROCESSING dient dazu, bei Verarbeitungsschleifen, die mit FOR, REPEAT, CALL LOOP oder CALL FILE ausgelöst wurden, dort eine Gruppenwechsel-Verarbeitung auszulösen, wo keine automatische Gruppenwechsel-Verarbeitung durchgeführt wird, oder wenn eine Gruppenwechsel-Verarbeitung gewünscht wird.

Im Gegensatz zu einer automatischen Gruppenwechsel-Verarbeitung, die ausgeführt wird, unmittelbar nachdem der Datensatz gelesen wurde, wird ein PERFORM BREAK PROCESSING-Statement dann ausgeführt, wenn es im normalen Programmablauf auftaucht.

Das PERFORM BREAK PROCESSING-Statement überprüft anhand des Wertes eines Kontrollfeldes, ob eine Gruppenwechsel-Bedingung erfüllt wird, und bewirkt außerdem eine Auswertung der Natural-Systemfunktionen. Diese Prüfung und Auswertung findet jedesmal, wenn das Statement ausgeführt wird, statt. Die Ausführung eines PERFORM BREAK PROCESSING-Statements kann an eine mit einem IF-Statement angegebene logische Bedingung geknüpft werden.

Syntax-Beschreibung

Syntax-Element Beschreibung
(r)
Statement-Referenzierung:

Normalerweise wird die PERFORM BREAK PROCESSING-Verarbeitung zum letztenmal ausgeführt, wenn die Ausführung des Programms/Subprogramms bzw. der Subroutine beendet ist.

Durch Verwendung eines Statement-Labels oder Angabe der Sourcecode-Zeilennummer mittels Notation (r) kann eine bestimmte Verarbeitungsschleife referenziert werden, auf die sich die abschließende PERFORM BREAK PROCESSING-Verarbeitung beziehen soll; in diesem Falle ist sie Teil der schleifenbeendenden Verarbeitung, d.h. die letzte PERFORM BREAK-Verarbeitung wird nach der letzten automatischen Gruppenwechsel-Verarbeitung und vor den AT END OF DATA-Statements ausgeführt.

AT BREAK statement...

Siehe Syntax des AT BREAK-Statements.

Beispiel

** Example 'PBPEX1S': PERFORM BREAK PROCESSING  (structured mode)       
************************************************************************
DEFINE DATA LOCAL                                                       
1 #INDEX (N2)                                                           
1 #LINE  (N2) INIT <1>                                                  
END-DEFINE                                                              
*                                                                       
FOR #INDEX 1 TO 18                                                      
  PERFORM BREAK PROCESSING                                             
  /*                                                                    
  AT BREAK OF #INDEX /1/                                                
    WRITE NOTITLE / 'PLEASE COMPLETE LINES 1-9 ABOVE' /                 
    RESET INITIAL #LINE                                                 
  END-BREAK                                                             
  /*                                                                    
  WRITE NOTITLE '_' (64) '=' #LINE                                      
  ADD 1 TO #LINE                                                        
END-FOR                                                                 
*                                                                       
END

Ausgabe des Programms PBPEX1S:

________________________________________________________________ #LINE:   1
________________________________________________________________ #LINE:   2
________________________________________________________________ #LINE:   3
________________________________________________________________ #LINE:   4
________________________________________________________________ #LINE:   5
________________________________________________________________ #LINE:   6
________________________________________________________________ #LINE:   7
________________________________________________________________ #LINE:   8
________________________________________________________________ #LINE:   9
                                                                           
PLEASE COMPLETE LINES 1-9 ABOVE                                            
                                                                           
________________________________________________________________ #LINE:   1
________________________________________________________________ #LINE:   2
________________________________________________________________ #LINE:   3
________________________________________________________________ #LINE:   4
________________________________________________________________ #LINE:   5
________________________________________________________________ #LINE:   6
________________________________________________________________ #LINE:   7
________________________________________________________________ #LINE:   8
________________________________________________________________ #LINE:   9
                                                                           
PLEASE COMPLETE LINES 1-9 ABOVE

Äquivalentes Reporting-Mode-Beispiel: PBPEX1R.