[AT] END [OF] DATA [(r)] |
| statement |
END-ENDDATA |
[AT] END [OF] DATA [(r)] |
||
|
|
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 | 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
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.
Dieser Abschnitt behandelt folgende Themen:
Siehe auch AT START/END OF DATA-Statement im Leitfaden zur Programmierung.
Dieses Statement ist nicht prozedural (das heißt, seine Ausführung hängt von einem Ereignis ab, nicht davon, wo im Programm es steht).
Zu dem Zeitpunkt, zu dem das AT END OF DATA-Statement ausgeführt wird,
enthalten alle Datenbankfelder die Werte des zuletzt verarbeiteten Datensatzes.
Das AT END OF DATA-Statement muss im selben Objektmodul stehen wie das
Statement, mit dem die Schleife initiiert wurde.
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.
Das Statement kann nur bei einer Verarbeitungsschleife eingesetzt werden, die mit
einem der folgenden Statements initiiert wurde: FIND, READ, READ WORK
FILE, HISTOGRAM oder SORT.
Pro Schleife darf höchstens ein AT END OF DATA-Statement verwendet
werden.
Das AT END OF DATA-Statement wird nur dann ausgeführt, wenn die
betreffende Schleife tatsächlich durchlaufen wird.
Syntax-Element-Beschreibung:
| Syntax-Element | Beschreibung |
|---|---|
(r) |
Referenzierungsnotation:
Normalerweise bezieht sich das Statement Wollen Sie, dass es sich auf eine andere aktive Schleife bezieht, so verwenden
Sie hierzu die Notation
|
statement
... |
Bei Eintreten der Bedingung auszuführende(s)
Statement(s):
Im Structured Mode muss anstelle von
|
END-ENDDATA |
Ende des AT END OF DATA-Statements:
Im Structured Mode muss das für Natural reservierte Schlüsselwort
Im Reporting Mode werden die Statements |
** 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.