Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

7.39.2 DOUNTIL の使用例

DOUNTIL . . . ENDUNTILルーチンを実行する

DOUNTIL . . . ENDUNTILを実行して"n"個のレコードをファイルに入力する

...

DOUNTILのパラメータでDEF_CONDの値を使用して、わかりやすく保守しやすいコードにする

DOUNTIL . . . ENDUNTILとIF . . . GOTO . . . ENDIFの使用例を比較する

配列索引を使用してDOUNTIL . . . ENDUNTILルーチンを実行する

Anchor
DOUNTIL_EX1
DOUNTIL_EX1
DOUNTIL . . . ENDUNTILルーチンを実行する

...

以下の例では、10名の従業員の詳細がファイルに挿入されます。

   GROUP_BY   NAME(#EMPDET) FIELDS(#EMPNO #SURNAME #SALARY)
DEFINE     FIELD(#COUNT) REFFLD(#STD_NUM)
DEF_LIST   NAME(#WORKER) FIELDS(#EMPNO #SURNAME #SALARY)
CHANGE     FIELD(#COUNT) TO(1)
DOUNTIL    COND('#COUNT > 10')
DISPLAY    FIELDS(#COUNT)
proREQUEST    FIELDS(#EMPNO #SURNAME #SALARY)
ADD_ENTRY  TO_LIST(#WORKER)
CHANGE     FIELD(#COUNT) TO('#COUNT + 1')
ENDUNTIL 
DISPLAY    BROWSELIST(#WORKER)  

...

   DEFINE     FIELD(#VAL1) REFFLD(#STD_NUM)
DEFINE     FIELD(#VAL2) REFFLD(#STD_NUM)
DEFINE     FIELD(#VAL3) REFFLD(#STD_NUM)
DEFINE     FIELD(#I1) REFFLD(#STD_NUM)
DEFINE     FIELD(#TOTAL) TYPE(*DEC) LENGTH(6) DECIMALS(2) LABEL(TOTAL) EDIT_CODE(3)
DEF_ARRAY  NAME(#ARR) INDEXES(#I1) OF_FIELDS(#VAL1 #VAL2 #VAL3)
CHANGE     FIELD(#TOTAL) TO(1)
CHANGE     FIELD(#I1) TO(1)
REQUEST    FIELDS(#VAL1 #VAL2 #VAL3)
DOUNTIL    COND('#I1 > 3')
CHANGE     FIELD(#ARR#I1) TO('#ARR#I1 * 1.1')
CHANGE     FIELD(#TOTAL) TO('#TOTAL + #ARR#I1')
CHANGE     FIELD(#I1) TO('#I1 + 1')
ENDUNTIL 
DISPLAY FIELDS(#TOTAL)

配列索引の詳細については、7.39 DOUNTILコマンドのセクションを参照してください。 コマンドのセクションを参照してください。