7.5.2 BROWSEの使用例
例1:指定された注文のすべての行をブラウズし、個々の明細行を選択できるようにします。
GROUP_BY NAME(#BRWLIN) FIELDS(#ORDLIN #PRODUCT #QUANTITY)
REQUEST FIELDS(#ORDNUM)
BROWSE FIELDS(#BRWLIN) FROM_FILE(ORDLIN) WITH_KEY(#ORDNUM) RETURN_RRN(#RRNFLD)
これは、機能的に以下の例と似ています。
DEF_LIST NAME(#BRWLIN) FIELDS((#SELECTOR *SELECT) #ORDLIN #PRODUCT #QUANTITY #RRNFLD)
REQUEST FIELDS(#ORDNUM)
CLR_LIST NAMED(#BRWLIN)
SELECT FIELDS(#BRWLIN) FROM_FILE(ORDLIN) WITH_KEY(#ORDNUM) RETURN_RRN(#RRNFLD)
ADD_ENTRY TO_LIST(#BRWLIN)
ENDSELECT
DISPLAY BROWSELIST(#BRWLIN)
SELECTLIST NAMED(#BRWLIN) GET_ENTRYS(*SELECT)
FETCH FIELDS(#BRWLIN) FROM_FILE(ORDLIN) WITH_RRN(#RRNFLD)
ENDSELECT
例2:状態がNSW、与信限度が$100,000の顧客を名前で総称的にブラウズします。
BROWSE FIELDS(#NAME #ADD1 #ADD2 #POSTCD #CRDLIM) FROM_FILE(CUSTMAS) WHERE('(#POSTCD > 1999) *AND (#POSTCD < 3000) *AND (#CRDLIM = 100000)') WITH_KEY(#NAME) GENERIC(*YES)
例3:例2を拡張し、レコードがブラウズ画面で唯一のレコードの場合に、そのレコードを自動的に選択します。
BROWSE FIELDS(#NAME #ADD1 #ADD2 #POSTCD #CRDLIM) FROM_FILE(CUSTMAS) WHERE('(#POSTCD > 1999) *AND (#POSTCD < 3000) *AND (#CRDLIM = 100000)') WITH_KEY(#NAME) GENERIC(*YES) ONE_FOUND(*SELECT)
例4:ブラウズにより、顧客マスター・ファイルの照会において更新および削除を実行できるようにします。このブラウズでは、顧客名の総称検索がサポートされます。
GROUP_BY NAME(#BRWLIN) FIELDS(#NAME #ADD1 #ADD2 #ADD3 #POSTCD)
BEGIN_LOOP
L1: REQUEST FIELDS(#NAME)
SET_MODE TO(*DISPLAY)
BROWSE FIELDS(#BRWLIN) FROM_FILE(CUSTMAS) WITH_KEY(#NAME) GENERIC(*YES) NO_SELECT(L1) RETURN_RRN(#FILRRN) CHANGE_KEY(*YES) DELETE_KEY(*YES)
DISPLAY FIELDS(#BRWLIN)
IF_MODE IS(*CHANGE)
UPDATE FIELDS(#BRWLIN) IN_FILE(CUSTMAS) WITH_RRN(#FILRRN)
ENDIF
IF_MODE IS(*DELETE)
DELETE FROM_FILE(CUSTMAS) WITH_RRN(#FILRRN)
ENDIF
END_LOOP