7.15.3 CONTINUEの使用例
この例は、BEGIN_LOOPループ内でCONTINUEコマンドを使用する方法を示しています。
DEF_LIST NAME(#EMPBROSWE) FIELDS(#EMPNO #SURNAME #GIVENAME #DEPTMENT)
BEGIN_LOOP
REQUEST FIELDS(#EMPNO) BROWSELIST(#EMPBROSWE)
FETCH FIELDS(#EMPNO #SURNAME #GIVENAME #DEPTMENT) FROM_FILE(PSLMST) WITH_KEY(#EMPNO)
IF_STATUS IS_NOT(*OKAY)
MESSAGE MSGTXT('That employee could not be found!')
CONTINUE
ENDIF
ADD_ENTRY TO_LIST(#EMPBROSWE)
END_LOOP
要求された社員番号が見つからない場合、メッセージが発行され、CONTINUEコマンドによってプログラム制御がADD_ENTRYコマンドにスキップし、REQUESTコマンドでループの先頭に戻ります。
この例は、SELECTループ内でCONTINUEコマンドを使用する方法を示しています。この例では、追加のユーザー・ファンクション・キーを使用して、選択したレコードを表示したり、必要に応じて削除したりできます。
DEF_COND NAME(*DROPPED) COND('#IO$KEY = ''09''')
DEF_LIST NAME(#EMPBROWSE) FIELDS(#SECTION #EMPNO #SURNAME #GIVENAME)
DEF_LIST NAME(#EMPSELECT) FIELDS(#SECTION #EMPNO #SURNAME #GIVENAME)
SELECT FIELDS(#EMPBROWSE) FROM_FILE(PSLMST)
DISPLAY FIELDS(#SECTION #EMPNO #SURNAME #GIVENAME) BROWSELIST(#EMPBROWSE) USER_KEYS((09 'Drop'))
CONTINUE IF(*DROPPED)
ADD_ENTRY TO_LIST(#EMPBROWSE)
ADD_ENTRY TO_LIST(#EMPSELECT)
ENDSELECT
DISPLAY BROWSELIST(#EMPSELECT)