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 命令でオープンするので
その前にメンバー名も指定しておく必要がある。
_
