[AT] START [OF] DATA [(r)]
|
| statement
|
END-START |
[AT] START [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 END 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 START OF DATA können Sie eine Verarbeitung angeben, die
ausgeführt werden soll, unmittelbar nachdem der erste Datensatz einer mit einem Statement
READ, FIND, HISTOGRAM, SORT oder READ WORK
FILE initiierten Verarbeitungsschleife gelesen worden ist.
Siehe auch AT START/END OF DATA-Statement im Leitfaden zur Programmierung.
Falls das schleifeninitiierende Statement eine WHERE-Klausel enthält, wird
die AT START OF DATA-Verarbeitung erst dann ausgeführt, wenn der erste
Datensatz gelesen wird, der sowohl das primäre Suchkriterium als auch die
WHERE-Bedingung erfüllt.
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 START OF DATA-Statement ausgeführt wird,
enthalten alle Datenbankfelder die Werte des zuerst verarbeiteten Datensatzes (d.h. des
ersten Datensatzes, der die AT START OF DATA-Bedingung erfüllt).
Das AT START OF DATA-Statement muss innerhalb der betreffenden
Verarbeitungsschleife stehen. Pro Verarbeitungsschleife darf höchstens ein AT
START OF DATA-Statement verwendet werden.
Syntax-Element-Beschreibung:
| Syntax-Element | Beschreibung |
|---|---|
(r) |
Referenzieren einer bestimmten Verarbeitunsgsschleife:
Normalerweise bezieht sich das Statement AT START 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
Quellcode-Zeilennummer des Statements ist, welches die gewünschte Schleife
initiiert.
|
statement
... |
Bei Eintreten der Bedingung auszuführende(s)
Statement(s):
Im Structured Mode muss anstelle von
|
END-START |
Ende des AT START OF DATA-Statements:
Im Structured Mode muss das für Natural reservierte Schlüsselwort
Im Reporting Mode werden die Statements |
** Example 'ASDEX1S': AT START OF DATA (structured mode)
***********************************************************************
DEFINE DATA LOCAL
1 EMPLOY-VIEW VIEW OF EMPLOYEES
2 NAME
2 FIRST-NAME
2 CITY
*
1 #CNTL (A1) INIT <' '>
1 #CITY (A20) INIT <' '>
END-DEFINE
*
REPEAT
INPUT 'ENTER VALUE FOR CITY' #CITY
IF #CITY = ' ' OR = 'END'
STOP
END-IF
FIND EMPLOY-VIEW WITH CITY = #CITY
IF NO RECORDS FOUND
WRITE NOTITLE NOHDR 'NO RECORDS FOUND'
ESCAPE BOTTOM
END-NOREC
/*
AT START OF DATA
INPUT (AD=O) 'RECORDS FOUND' *NUMBER //
'ENTER ''D'' TO DISPLAY RECORDS' #CNTL (AD=A)
IF #CNTL NE 'D'
ESCAPE BOTTOM
END-IF
END-START
/*
DISPLAY NAME FIRST-NAME
END-FIND
END-REPEAT
END
Ausgabe des Programms ASDEX1S:
ENTER VALUE FOR CITY PARIS
Nach Eingabe und Bestätigung des Namens der Stadt:
RECORDS FOUND 26 ENTER 'D' TO DISPLAY RECORDS D
Angezeigte Datensätze:
NAME FIRST-NAME
-------------------- --------------------
MAIZIERE ELISABETH
MARX JEAN-MARIE
REIGNARD JACQUELINE
RENAUD MICHEL
REMOUE GERMAINE
LAVENDA SALOMON
BROUSSE GUY
GIORDA LOUIS
SIECA FRANCOIS
CENSIER BERNARD
DUC JEAN-PAUL
CAHN RAYMOND
MAZUY ROBERT
FAURIE HENRI
VALLY ALAIN
BRETON JEAN-MARIE
GIGLEUX JACQUES
KORAB-BRZOZOWSKI BOGDAN
XOLIN CHRISTIAN
LEGRIS ROGER
VVVV
Äquivalentes Reporting-Mode-Beispiel: ASDEX1R.