ESCAPE
|
|
TOP [REPOSITION]
|
|
BOTTOM
[(r)]
[IMMEDIATE]
|
|||
ROUTINE
[IMMEDIATE]
|
|||
MODULE
[IMMEDIATE]
|
ESCAPE
|
|
TOP
[REPOSITION]
|
|
||
BOTTOM [(r)]
[IMMEDIATE]
|
|||||
ROUTINE
[IMMEDIATE]
|
|||||
MODULE
[IMMEDIATE]
|
|||||
This document covers the following topics:
For an explanation of the symbols used in the syntax diagram, see Syntax Symbols.
Related Statements:
FIND |
FOR |
HISTOGRAM |
PARSE XML |
READ |
READ RESULT SET
(SQL)| READ WORK
FILE | READLOB |
REPEAT |
SORT
CALL |
CALL FILE |
CALL LOOP |
CALLNAT |
DEFINE SUBROUTINE |
FETCH |
PERFORM
Belongs to Function Group:
The ESCAPE statement is used to interrupt the linear
flow of execution of a processing loop or a routine.
With the keywords TOP, BOTTOM and
ROUTINE you indicate where processing is to continue when the
ESCAPE statement is encountered.
An ESCAPE TOP/BOTTOM statement, when encountered for
processing, will internally refer to the innermost active processing loop. The
ESCAPE statement need not be physically placed within the
processing loop.
If an ESCAPE TOP/BOTTOM statement is placed in a
routine (subroutine, subprogram, function, or a program invoked with
FETCH RETURN), the routine(s) entered during execution of the
processing loop will be terminated automatically.
More than one ESCAPE statement may be contained
within the same processing loop.
The execution of an ESCAPE statement may be based on
a logical condition. If an ESCAPE statement is encountered during
processing of an AT END OF DATA, AT BREAK or AT
END OF PAGE block, the execution of the special condition block will be
terminated and ESCAPE processing will continue as required.
If an ESCAPE statement is encountered during
processing of an if-no-records-found condition, no loop-end processing will be
performed (equivalent to ESCAPE IMMEDIATE).
| Syntax Element | Description |
|---|---|
ESCAPE TOP
|
Top Option:
|
REPOSITION
|
Top Reposition Option:
When an At the same time,
|
ESCAPE BOTTOM
|
Bottom Option:
In reporting mode, |
(r) |
Statement Reference:
Notation
A label or a reference number can only be specified if the
|
IMMEDIATE
|
Immediate Option:
If you specify the keyword |
ESCAPE ROUTINE
|
Routine Option:
This option indicates that the current Natural routine,
which may have been invoked via a In the case of a subroutine, processing will continue with the first statement after the statement used to invoke the subroutine. In the case of a main program, Natural command mode will be entered. All loops currently active within the routine will be
terminated and loop-end processing performed as well as final processing for
user-initiated ( |
ESCAPE MODULE
|
Module Option:
This option indicates that the entire current program
level, with all internal subroutines, is to relinquish control. The control is
then returned to the object of the former program level. If
As with |
** 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
ENTER VALUE FOR CITY: PARIS (OR '.' TO TERMINATE)
RECORDS FOUND: 26 ENTER 'D' TO DISPLAY RECORDS 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