RPG

107. サブファイルの誤解と使用方法 (7)

追加としてサブファイル独自の留意点をいくつか挙げておこう。

1. ERRMSG パラメータではなく SFLMSG を使う

エラーメッセージを表示するための ERRMSGERRMSGID の代わりに SFLMSG

または SFLMSGID キーワードを使用する。

使用方法は ERRMSG または ERRMSGID と同じである。

SFLMSG, SFLMSGIDSFLCTL レコードに定義する。

【 例 】

A  66                                  SFLMSG(' 商品 コード の誤り です' 66)
A  61                                  SFLMSGID(EDT0411 QPDA/QEDTMSG 61)
A  62                                  SFLMSGID(EDT0410 QPDA/QEDTMSG 62)
A  67                                  SFLMSGID(CPD6A6D QSYS/QCPFMSG 67)

2. 特定のサブファイル・レコードを強制的に表示するには

SFLRCDNBR(CURSOR) キーワードを SFLCTL に定義すると、そのレコードを含むページ

を強制的に表示してカーソルをレコードに位置づけることができる。

複数のページを持っているあるサブファイルで妥当性検査によって、例えば3ページ目に

含まれるレコードがエラー行になったとする。

操作員がエラー行を含むページをスクロールして探すのではなく、そのページを強制的に

表示させるようにするには SFLRCDNBR によって実現することができる。

【 例 】

A            DSPREC         4S 0H      SFLRCDNBR(CURSOR)

3. カーソルが位置づけられていたフィールド名を検索するには

RTNCSRLOC キーワードを使うとカーソルが位置づけられていたフィールド名とカーソルの

フィールド内での相対位置も検索することができる。

【 例 】

0095.00      A                                      RTNCSRLOC(&RCD &FLD &CSRP)
0097.00      A            RCD           10A  H                                
0098.00      A            FLD           10A  H                                
0099.00      A            CSRP           4S 0H
RCD = カーソルが位置づけられていたレコード名
FLD = カーソルが位置づけられていたフィールド名
CSRP = カーソルのフィールド内での相対位置