ILE-RPG で使用するファイルを指定するために実行時に
ライブラリー・リストを設定したりすることはよくあるのだが
もっと強制的に指定したい場合はファイル仕様書で EXFILE を
指定すると使用したいファイルがライブラリー・リストに
設定されていなくてもEXTFILEで指定したライブラリーの
ファイルを明示的にオープンすることができる。
_
さらにこのときメンバー名もEXTMBRを使えば指定することができる。
さらにメンバー名だけを変数として動的に指定することもできる。
例 EXTFILE と EXTMBRを使用する例
0001.00 H DFTNAME(CRTQRYSLT) DATEDIT(*YMD/) BNDDIR('QC2LE') 0002.00 F********** QUERY レコード選択の作成 ************************************ 0003.00 FQCMDSRC UF A F 92 DISK USROPN 0004.00 F EXTFILE(CMDSRC_LIB) EXTMBR(CMDMBR) 0005.00 FQCLSRC UF A F 92 DISK USROPN 0006.00 F EXTFILE(CLSRC_LIB) EXTMBR(CLPMBR) 0007.00 FDSPFFD IF E DISK USROPN 0008.00 F********************************************************************** 0009.00 : 0016.00 *( 作業変数 ) 0017.00 D CMDSRC_LIB S 13A INZ('QTEMP/QCMDSRC') 0018.00 D CMDMBR S 10A 0019.00 D CLSRC_LIB S 12A INZ('QTEMP/QCLSRC') 0020.00 D CLPMBR S 10A : C*-------------------------------------------------------------------------+ C *ENTRY PLIST | C PARM QRY_ 10 | C PARM QRYLIB_ 10 | : 0398.00 C****************************************************** 0399.00 C *INZSR BEGSR 0400.00 C****************************************************** : 0404.00 C EVAL CMDMBR = QRY_ 0405.00 C EVAL CLPMBR = %TRIMR(QRY_) + 'CL'
[解説]
ライブラリー : QTEMP の QCMDSRC というファイルをオープンするが
メンバー名は *ENTRY でパラメータとして受け取って *INZSR で
演算が始まる前にメンバーも指定しておく。
ファイル :QCMDSSRC は USROPN として明示的に OPEN 命令でオープンするので
その前にメンバー名も指定しておく必要がある。
_