RPG でサブファイルを使用する場合のテクニックをいくつか紹介する。
- DDS原始では SFLPAG数より SFLSIZ数を +1大きくしておく。
こうすれば サブファイルは サブファイル・レコードの追加(WRITE) によって
いくつでも自動拡張される。
- DDSの SFLCLRとはサブファイルを CLRPFM のようにクリアーする命令である。
それに対して SFLBLK とはサブファイルをブランク・レコードで埋め尽くす。
DDSでは エラー標識で SFLNXTCHG を記述しておいて、RPGではユーザーが
入力/変更した行を READC (Read Change) で読取るようにする。
READC であれば ユーザーが実際に何かを入力/変更した行だけを読取るので効率が良くなる。
READCで読取った行がエラーであれば、エラー標識をON にしてからそのサブファイル・レコードを
UPDATしておく。
エラー標識で SFLNXTCHG が指定されているので、ユーザーが何も変更せずに実行キーを
押した場合でももう一度 READC で読取ることができる。
- REDAC で取得したサブファイル・レコードのRRN は INFDSで取得できる。
(INFDS の B 376 377,0 BRRN)
- DDS の SFLRCDNBR (CURSOR) で指定した RRNに RPG で値を入れてサブファイルを表示すると、
そのサブファイルレコードを含むページが表示される。
この方法によって複数ページのサブファイルの表示を制御できる。
- PANEL-WORKER または PANEL-WORKER Chicago のユーザーであればライブラリー QTRSRC の
QDSPSRC/ANS004FM と QRPGSRC/ANS004 にサブファイル入力の適切に例を参照することができる。