|
次のRDMLプログラムでは、*HIDDEN属性と*SELECT属性を使用して、ユーザーに顧客の総称名を入力するよう要求しています。入力条件に一致する顧客名がすべて表示され、その顧客名を選択すると、詳細を表示することができます。
DEFINE FIELD(#CHOOSE) TYPE(*CHAR) LENGTH(1) COLHDG('Sel')
DEF_LIST NAMED(#BROWSE) FIELDS((#CHOOSE *SELECT) #NAME (#CUSTNO *HIDDEN))
GROUP_BY NAME(#CUSTOMER) FIELDS(#CUSTNO #NAME #ADDR1 #ADDR2 #POSTCD)
REQUEST FIELDS(#NAME)
CLR_LIST NAMED(#BROWSE)
SELECT FIELDS(#BROWSE) FROM_FILE(CUSMSTV1) WITH_KEY(#NAME) GENERIC(*YES)
ADD_ENTRY TO_LIST(#BROWSE)
ENDSELECT
DISPLAY BROWSELIST(#BROWSE)
SELECTLIST NAMED(#BROWSE) GET_ENTRYS(*SELECT)
FETCH FIELDS(#CUSTOMER) FROM_FILE(CUSMST) WITH_KEY(#CUSTNO)
DISPLAY FIELDS(#CUSTOMER)
ENDSELECT
このRDMLプログラムでは、次の点に注意してください。
Sel Customer name
_ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
"Sel"列が入力可能であることに注意してください。これは、フィールド#CHOOSEに*SELECT属性を割り当てているためです。
また、フィールド#CUSTNOが画面に表示されないことに注意してください。これは、フィールド#CUSTNOに属性*HIDDENが指定されているためです。このフィールドは表示されていませんが、各リスト・エントリーの一部であり、詳細を表示するのに必要な顧客レコードを取り込むために最終ループで使用されます。
*SELECT属性は、他にもさまざまな方法で使用することができます。次の例を検討してみましょう。
DEFINE FIELD(#CHOOSE) TYPE(*CHAR) LENGTH(3) COLHDG('Sel')
DEF_LIST NAMED(#BROWSE) FIELDS((#CHOOSE *SELECT) #ORDER #DATDUE)
REQUEST FIELDS(#DATDUE)
CLR_LIST NAMED(#BROWSE)
SELECT FIELDS(#BROWSE) FROM_FILE(ORDHDRV3) WITH_KEY(#DATDUE)
ADD_ENTRY TO_LIST(#BROWSE)
ENDSELECT
DISPLAY BROWSELIST(#BROWSE)
--> SELECTLIST NAMED(#BROWSE) GET_ENTRYS(*SELECT)
|
| CASE OF_FIELD(#CHOOSE)
|
| WHEN VALUE_IS('= CUS')
| < display customer details >
| WHEN VALUE_IS('= DET' '= LIN')
| < display line item details >
| WHEN VALUE_IS('= HIS')
| < display customer payment history >
| WHEN VALUE_IS('= STS')
| < display order status >
|
| ENDCASE
|
--- ENDSELECT
Sel Order Date Due
_ 9999999 99/99/99
_ 9999999 99/99/99
_ 9999999 99/99/99
_ 9999999 99/99/99