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命令はフリー・フォーマットではなく
固定式記述でつかも標識を使って記述していることが多い。