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