ILE-RPGでは標識を使わない記述をすることができる。
まず最初に標識を使わないCHAIN命令の使用方法を紹介する。
■ 標識を使うCHAIN命令
CHAIN命令で 54桁目に標識を定義しておくと
CHAIN できなかったときはこの標識がオンになるので
CHAIN の失敗としての演算を記述する。
■ 標識は使わない CHAIN命令
%FOUND という組込み関数が用意されていて
CHAIN 命令が成功したときはオンにセットされる。
またフリー・フォーマットの場合も標識は定義しないで
%FOUND を使ってCHAIN命令の結果を記述する。
■ 標識を使わないCHAINのTESTCHN
ソースはこちらから
0001.00 H DFTNAME(TESTCHN) DATEDIT(*YMD/) BNDDIR('QC2LE')
0002.00 F********** 商品マスターの読取り **************************************
0003.00 FSHOHIN IF E K DISK
0004.00 F**********************************************************************
0005.00
0006.00 * CRTBNDRPG PGM(OBJLIB/TESTCHN) SRCFILE(SRCLIB/QRPGLESRC) DFTACTGRP(*NO)
0007.00 * ACTGRP(*NEW) DBGVIEW(*SOURCE) AUT(*ALL)
0008.00
0009.00 C MOVEL(P) 'NV-CF1' SHCODE
0010.00 *(1) 標識を使った CHAIN 命令
0011.00 C SETOFF 99
0012.00 C SHCODE CHAIN SHOHIN 99
0013.00 C 99'NOT CHAIN' DSPLY ANS 1
0014.00 C N99'CHAIN SUCCES'DSPLY ANS
0015.00
0016.00 *(2) 標識を使わない CHAIN 命令
0017.00 C SHCODE CHAIN SHOHIN
0018.00 C IF NOT %FOUND NOT CHAIN
0019.00 C 'NOT CHAIN' DSPLY ANS
0020.00 C ELSE SUCCECS
0021.00 C 'CHAIN SUCCES'DSPLY ANS
0022.00 C ENDIF SUCCESS
0023.00 /FREE
0024.00 CHAIN SHCODE SHOHIN;
0025.00 IF NOT %FOUND;
0026.00 DSPLY 'NOT CHAIN' '' ANS;
0027.00 ELSE;
0028.00 DSPLY 'CHAIN SUCCESS' '' ANS;
0029.00 ENDIF;
0030.00 /END-FREE
0031.00 C SETON LR
0032.00 C RETURN
0033.00
[解説]
CHAIN命令をフリー・フォーマットで書くと従来の固定式の技術より
大幅に変更されてしまうのでまだ小職は違和感がある。
CHAIN命令はフリー・フォーマットではなく
固定式記述でつかも標識を使って記述していることが多い。
