ESCAPE |
TOP [REPOSITION ]
|
||
BOTTOM [(r)] [IMMEDIATE ]
|
|||
ROUTINE [IMMEDIATE ]
|
|||
MODULE [IMMEDIATE ]
|
ESCAPE |
TOP [REPOSITION ]
|
||||
BOTTOM [(r)] [IMMEDIATE ]
|
|||||
ROUTINE [IMMEDIATE ]
|
|||||
MODULE [IMMEDIATE ]
|
このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
関連ステートメント:
関連機能グループ:
ESCAPE
ステートメントは、処理ループやルーチンの実行を中断するために使用します。
キーワードの TOP
、BOTTOM
、および ROUTINE
によって、ESCAPE
ステートメントが現れたとき処理をどこから続けるかを指定します。
ESCAPE TOP/BOTTOM
ステートメントは、最も内側でアクティブになっている処理ループを内部で参照します。ESCAPE
ステートメントを、物理的に処理ループ内に置く必要はありません。
ESCAPE TOP/BOTTOM
ステートメントをルーチン内(サブルーチン、サブプログラム、または FETCH RETURN
で起動されたプログラム)に指定すると、処理ループの実行中に呼び出されたルーチンは自動的に終了します。
同一の処理ループ内に、複数の ESCAPE
ステートメントを指定できます。
ESCAPE
ステートメントは、論理条件に基づいて実行できます。ESCAPE
ステートメントが AT END OF DATA
、AT BREAK
または AT
END OF PAGE
ブロックの処理中に実行されると、特殊条件ブロックの実行を終了し、指定された ESCAPE
処理を続行します。
IF NO RECORDS FOUND 条件の処理中に ESCAPE
ステートメントが実行されると、ループ終了処理は行われません(ESCAPE IMMEDIATE
と同じ)。
構文要素 | 説明 |
---|---|
ESCAPE TOP |
Top オプション:
|
REPOSITION |
Top Reposition オプション:
同時に、
|
ESCAPE BOTTOM |
Bottom オプション:
レポーティングモードでは、 |
(r) |
ステートメント参照:
表記 ラベルまたは参照番号を指定できるのは、参照する処理ループに |
IMMEDIATE |
Immediate オプション:
キーワード |
ESCAPE ROUTINE |
Routine オプション:
このオプションは、 サブルーチンの場合、そのサブルーチンを呼び出したステートメントの、次のステートメントから処理が続行されます。メインプログラムの場合は、Natural コマンドモードに入ります。 ルーチン内でアクティブになっているループはすべて終了し、ループ終了処理、およびユーザー開始( |
ESCAPE MODULE |
Module オプション:
ESCAPE MODULE を実行すると、現在のプログラムレベル全体(すべての内部サブルーチンを含む)の制御が中止されます。その後、制御は前のプログラムレベルのオブジェクトに返されます。内部サブルーチンの階層内で
|
** 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