Version 4.2.6
 —  Statements  —

AT END OF DATA

Structured Mode-Syntax

[AT] END [OFDATA  [(r)]
    statement ../graphics/dot3.gif
END-ENDDATA

Reporting Mode-Syntax

[AT] END [OFDATA  [(r)]

statement

DO statement ../graphics/dot3.gif DOEND

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

Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen


Funktion

Mit dem Statement AT END OF DATA können Sie eine Verarbeitung angeben, die ausgeführt werden soll, nachdem in einer Verarbeitungsschleife alle Datensätze verarbeitet worden sind.

Dieses Abschnitt behandelt folgende Themen:

Siehe auch AT START/END OF DATA-Statement im Leitfaden zur Programmierung.

Verarbeitung

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

Feldwerte der Datenbankfelder

Zu dem Zeitpunkt, zu dem das AT END OF DATA-Statement ausgeführt wird, enthalten alle Datenbankfelder die Werte des zuletzt verarbeiteten Datensatzes.

Positionierung

Das AT END OF DATA-Statement muss im selben Objektmodul stehen wie das Statement, mit dem die Schleife initiiert wurde.

Systemfunktionen

Natural-Systemfunktionen können in Verbindung mit einem AT END OF DATA-Statement verwendet werden, wie im Abschnitt Systemfunktionen für Verarbeitungsschleifen benutzen in der Systemfunktionen-Dokumentation beschrieben.

Seitenanfang

Einschränkungen

Seitenanfang

Syntax-Beschreibung

(r)
Referenzieren einer bestimmten Verarbeitungsschleife:
Normalerweise bezieht sich das Statement AT END OF DATA auf die jeweils äußerste aktive Verarbeitungsschleife. Wollen Sie, dass es sich auf eine andere aktive Schleife bezieht, so verwenden Sie hierzu die Notation (r), wobei r das Statement-Label oder die Sourcecode-Zeilennummer des Statements ist, welches die gewünschte Schleife initiiert.
END-ENDDATA Das reservierte Natural-Wort END-ENDDATA muss zum Beenden des AT END OF DATA-Statements benutzt werden.

Seitenanfang

Beispiel

** Example 'AEDEX1S': AT END OF DATA                                    
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 PERSONNEL-ID                                                        
  2 NAME                                                                
  2 FIRST-NAME                                                          
  2 SALARY    (1)                                                       
  2 CURR-CODE (1)                                                       
END-DEFINE                                                              
*                                                                       
LIMIT 5                                                                 
EMP. FIND EMPLOY-VIEW WITH CITY = 'STUTTGART'                           
  IF NO RECORDS FOUND                                                   
    ENTER                                                               
  END-NOREC                                                             
  DISPLAY PERSONNEL-ID NAME FIRST-NAME                                  
          SALARY (1) CURR-CODE (1)                                      
  /*
   AT END OF DATA                                               
    IF *COUNTER (EMP.) = 0                                     
      WRITE 'NO RECORDS FOUND'                                 
      ESCAPE BOTTOM                                            
    END-IF                                                     
    WRITE NOTITLE / 'SALARY STATISTICS:'                       
                  / 7X 'MAXIMUM:' MAX(SALARY(1))  CURR-CODE (1)
                  / 7X 'MINIMUM:' MIN(SALARY(1))  CURR-CODE (1)
                  / 7X 'AVERAGE:' AVER(SALARY(1)) CURR-CODE (1)
    END-ENDDATA 
  /*                                                           
END-FIND                                                       
*                                                              
END                                                           

Siehe auch Natural-Systemfunktionen für Verarbeitungsschleifen.

Ausgabe des Programms AEDEX1S:

PERSONNEL         NAME              FIRST-NAME        ANNUAL   CURRENCY
   ID                                                 SALARY     CODE  
--------- -------------------- -------------------- ---------- --------
                                                                       
11100328  BERGHAUS             ROSE                      70800 DM      
11100329  BARTHEL              PETER                     42000 DM      
11300313  AECKERLE             SUSANNE                   55200 DM      
11300316  KANTE                GABRIELE                  61200 DM      
11500304  KLUGE                ELKE                      49200 DM      
                                                                       
SALARY STATISTICS:                                                     
       MAXIMUM:      70800 DM                                          
       MINIMUM:      42000 DM                                          
       AVERAGE:      55680 DM                                         

Äquivalentes Reporting-Mode-Beispiel: AEDEX1R.

Seitenanfang