Page History
7.26.4 DEF_LIST の使用例
例1:注文の明細をすべて表示するRDMLプログラムを作成します。例1:注文の明細をすべて表示するRDMLプログラムを作成します。
必要な明細行リストを名前#ORDERLINEで定義し、注文頭書きファイルの必要なフィールドを名前#ORDERHEADでグループ化します。
...
REQUEST FIELDS(#ORDNUM)コマンドの場合:
|
DISPLAY FIELDS(#ORDERHEAD) BROWSELIST(#ORDERLINE)コマンドの場合:
...
|
DISPLAY FIELDS(#ORDERHEAD) BROWSELIST(#ORDERLINE)コマンドの場合:
...
| Code Block | ||
|---|---|---|
| ||
GROUP_BY NAME(#TRANS) FIELDS(#TRANNUM #TRANTIME #TRANDATE #TRANTYPE #TRANUSER #TRANSTATE #STATEDES) SELECT FIELDS(#TRANS) FROM_FILE(TRANS) FETCH FIELDS(#TRANS) FROM_FILE(STATES) WITH_KEY(#TRANSTATE) UPRINT FIELDS(#TRANS) ENDSELECT |
ただし、作業リストを使用すれば、このプログラムを大幅に高速化できます。
| Code Block | ||
|---|---|---|
| ||
ただし、作業リストを使用すれば、このプログラムを大幅に高速化できます。
GROUP_BY NAME(#TRANS) FIELDS(#TRANNUM #TRANTIME #TRANDATE #TRANTYPE #TRANUSER #TRANSTATE #STATEDES)
DEF_LIST NAME(#STATES) FIELDS(#STATE #STATEDES) TYPE(*WORKING) ENTRYS(10)
SELECT FIELDS(#STATES) FROM_FILE(STATE)
ADD_ENTRY TO_LIST(#STATES)
ENDSELECT
SELECT FIELDS(#TRANS) FROM_FILE(TRANS)
LOC_ENTRY IN_LIST(#STATES) WHERE('#STATE = #TRANSTATE')
UPRINT FIELDS(#TRANS)
ENDSELECT |
...