ESCAPE
|
TOP [REPOSITION ]
|
||
BOTTOM
[(r)]
[IMMEDIATE ]
|
|||
ROUTINE
[IMMEDIATE ]
|
|||
MODULE
[IMMEDIATE ]
|
ESCAPE
|
TOP
[REPOSITION ]
|
||||
BOTTOM [(r)]
[IMMEDIATE ]
|
|||||
ROUTINE
[IMMEDIATE ]
|
|||||
MODULE
[IMMEDIATE ]
|
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandte Statements:
Gehört zur Funktionsgruppe:
Das Statement ESCAPE
dient dazu, den linearen Ablauf
der Ausführung einer Verarbeitungsschleife oder eines Unterprogramms zu
unterbrechen.
Mit den Schlüsselwörtern TOP
, BOTTOM
und
ROUTINE
geben Sie an, wo die Verarbeitung nach dem
ESCAPE
-Statement fortgesetzt werden soll.
Ein ESCAPE TOP
- bzw. ESCAPE
BOTTOM
-Statement bezieht sich immer auf die innerste gerade aktive
Verarbeitungsschleife. Das ESCAPE
-Statement muss nicht unbedingt
innerhalb der Schleife stehen.
Befindet sich das ESCAPE TOP
- bzw. ESCAPE
BOTTOM
-Statement in einem Unterprogramm (Subroutine, Subprogramm oder
mit FETCH RETURN
aufgerufenes Programm), werden die innerhalb der
Verarbeitungsschleife aufgerufenen Unterprogramme automatisch beendet.
In einer Verarbeitungsschleife können mehrere
ESCAPE
-Statements enthalten sein.
Die Ausführung eines ESCAPE
-Statements kann an eine
logische Bedingung geknüpft werden. Befindet sich das ESCAPE-Statement in einem
AT END OF DATA
-, AT BREAK
- oder AT END OF
PAGE
-Statement-Block, so wird die Verarbeitung des betreffenden Blocks
abgebrochen und die ESCAPE
-Verarbeitung wie angegeben fortgesetzt.
Wird das ESCAPE
-Statement während einer IF NO
RECORDS FOUND
-Bedingung ausgeführt, werden keine schleifenabschließenden
Verarbeitungen durchgeführt (entspricht ESCAPE IMMEDIATE
).
Syntax-Element-Beschreibung
Syntax-Element | Beschreibung |
---|---|
ESCAPE TOP
|
TOP-Option:
|
REPOSITION
|
TOP REPOSITION-Option:
Wenn ein Gleichzeitig setzt
|
ESCAPE BOTTOM
|
BOTTOM-Option:
Im Reporting Mode ist |
(r) |
Statement-Referenzierung:
Notation
Ein Label oder eine Referenznummer kann jedoch nur dann
angegeben werden, wenn das |
IMMEDIATE
|
IMMEDIATE-Option:
Wenn Sie das Schlüsselwort |
ESCAPE ROUTINE
|
ROUTINE-Option:
Diese Option bewirkt, dass das aktive
Natural-Unterprogramm, das entweder über Im Falle einer Subroutine wird die Verarbeitung mit dem ersten Statement fortgesetzt, das auf das Statement folgt, mit dem die Subroutine aufgerufen wurde. Im Falle eines Hauptprogramms gelangt Natural in den
Kommando-Modus. Alle aktiven Schleifen innerhalb des Unterprogramms werden
beendet und schleifenabschließende Verarbeitungen ( |
ESCAPE MODULE
|
MODULE-Option:
Diese Option bewirkt, dass die gesamte aktive Programmebene, einschließlich aller internen Subroutinen, die Kontrolle abgibt. Die Kontrolle wird dann an das Objekt der vorherigen Programmebene zurückgegeben. Wenn Wenn keine interne Subroutine aktiv ist, führt
Wie bei |
** Example 'ESCEX1': ESCAPE ************************************************************************ DEFINE DATA LOCAL 1 EMPLOY-VIEW VIEW OF EMPLOYEES 2 CITY 2 FIRST-NAME 2 NAME 2 AREA-CODE 2 PHONE * 1 #CITY (A20) INIT <' '> 1 #CNTL (A1) INIT <' '> END-DEFINE * REPEAT INPUT 'ENTER VALUE FOR CITY: ' #CITY / 'OR ''.'' TO TERMINATE ' IF #CITY = '.' ESCAPE BOTTOM END-IF /* FND. FIND EMPLOY-VIEW WITH CITY = #CITY /* IF NO RECORDS FOUND WRITE 'NO RECORDS FOUND' ESCAPE BOTTOM (FND.) END-NOREC AT START OF DATA INPUT (AD=O) 'RECORDS FOUND:' *NUMBER // 'ENTER ''D'' TO DISPLAY RECORDS' #CNTL (AD=M) IF #CNTL NE 'D' ESCAPE BOTTOM (FND.) END-IF END-START /* DISPLAY NOTITLE NAME FIRST-NAME PHONE END-FIND END-REPEAT
Ausgabe des Programms ESCEX1
:
ENTER VALUE FOR CITY: PARIS (OR '.' TO TERMINATE)
Nach Eingabe und Bestätigung des Namens der Stadt:
RECORDS FOUND: 26 ENTER 'D' TO DISPLAY RECORDS D
Ergebnis nach Eingabe und Bestätigung von D
:
NAME FIRST-NAME TELEPHONE -------------------- -------------------- --------------- MAIZIERE ELISABETH 46758304 MARX JEAN-MARIE 40738871 REIGNARD JACQUELINE 48472153 RENAUD MICHEL 46055008 REMOUE GERMAINE 36929371 LAVENDA SALOMON 40155905 BROUSSE GUY 37502323 GIORDA LOUIS 37497316 SIECA FRANCOIS 40487413 CENSIER BERNARD 38070268 DUC JEAN-PAUL 38065261 CAHN RAYMOND 43723961 MAZUY ROBERT 44286899 FAURIE HENRI 44341159 VALLY ALAIN 47326249 BRETON JEAN-MARIE 48467146 GIGLEUX JACQUES 40477399 KORAB-BRZOZOWSKI BOGDAN 45288048 XOLIN CHRISTIAN 46060015 LEGRIS ROGER 39341509 VVVV