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:
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