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