RPG

237. もう一度サブ・ファイル (2)

サブ・ファイルのイメージを Web でわかりやすく表現してみよう。
今回のテーマは

目で見るサブ・ファイルの実体

である。

次のリスト・ボックスを見てほしい。
これが最初に出力したサブ・ファイルのイメージである。

商品コード 商品名 単価 品種コード 品種名
0001 NV-BS30S 目次ビデオ 165,000 0002 ビデオデッキ
0002 NV-BS50S ビデオ画王 200,000 0002 ビデオデッキ
0003 NV-CF1 Cカセット編集ビデオ 58,000 0002 ビデオデッキ
0004 NV-CF2 商品AAA 168,000- 0003 コンポ
0005 NV-CF81 更新テスト 48,000 0005 ヘッドホン
0006 NV-CF9 漢字テスト 19,000 0002 ビデオデッキ
0007 NV-F850 音声録画ビデオ 140,000 0002 ビデオデッキ
0008 NV-HK1 歌えるビデオ 90,000 0002 ビデオデッキ
0009 NV-H1T-S みんなのビデオ 69,800 0002 ビデオデッキ
0010 NV-SX10 ビデオ画王 115,000 0002 ビデオデッキ
0011 NV-W1 世界放送方式ビデオ 350,000 0002 ビデオデッキ
0012 RX-DT75 CDラジオカセット 53,800 0003 コンポ
0013 SC-CH150 超ミニ・コンポ 70,000 0003 コンポ
0014 SC-CH505 パーソナル・ミニコンポ 100,000 0003 コンポ

スクロール・バーを操作して次のページも表示して欲しい。

目に見えている行数が SFLPAG =13 であり、SFLレコードの実体である
中身の行数が SFLSIZ =14 である。
SFLSIZSFLPAG より +1 だけ大きく作っておくと SFLSIZ
IBM i OS によって自動的に拡張される。

ここでROLLUP(PgDnキー)を押すとさらに 13行のレコードが追加されて
次のような表示となる。

商品コード 商品名 単価 品種コード 品種名
0001 NV-BS30S 目次ビデオ 165,000 0002 ビデオデッキ
0002 NV-BS50S ビデオ画王 200,000 0002 ビデオデッキ
0003 NV-CF1 Cカセット編集ビデオ 58,000 0002 ビデオデッキ
0004 NV-CF2 商品AAA 168,000- 0003 コンポ
0005 NV-CF81 更新テスト 48,000 0005 ヘッドホン
0006 NV-CF9 漢字テスト 19,000 0002 ビデオデッキ
0007 NV-F850 音声録画ビデオ 140,000 0002 ビデオデッキ
0008 NV-HK1 歌えるビデオ 90,000 0002 ビデオデッキ
0009 NV-H1T-S みんなのビデオ 69,800 0002 ビデオデッキ
0010 NV-SX10 ビデオ画王 115,000 0002 ビデオデッキ
0011 NV-W1 世界放送方式ビデオ 350,000 0002 ビデオデッキ
0012 RX-DT75 CDラジオカセット 53,800 0003 コンポ
0013 SC-CH150 超ミニ・コンポ 70,000 0003 コンポ
0014 SC-CH505 パーソナル・ミニコンポ 100,000 0003 コンポ
0015 SC-CH655 ロングプレイ・コンポ 129,000 0003 コンポ
0016 SC-CH950 ドルビー・ミニコンポ 162,000 0003 コンポ
0017 SF-SDCD FFFFF 19,000 0009
0018 TH-19VS30 コンパクトTVBS19 120,000 0001 カラーTV
0019 TH-21VS30 コンパクトTVBS21 128,000 0001 カラーTV
0020 TH-25GF10 衛星放送内蔵TV25 168,000 0001 カラーTV
0021 TH-25GV10 ビデオ内蔵型TV25 255,000 0001 カラーTV
0022 TH-25VS30 コンパクトTVBS25 11,300 0001 カラーTV
0023 TH-29GF10 カラーTV画王BS29 220,000 0001 カラーTV
0024 TH-29GV10 ビデオ内蔵型TV29 280,000 0001 カラーTV
0025 TH-33VS35 カラーTV画王BS33 350,000 0001 カラーTV
 

このように 14行目から 25行目まで表示されているが
正しくスクロールされて上記のように、あたかもページをめくったように
表示されるためには、

  • SFLSIZ が拡張されていること
  • 表示したいページの、どれかのレコードが SFLRCDNBR としてセットされていること

の二つの条件が満たされていなければならない。

SFLRCDNBR ( Subfile Record Number ) とは

  A            DSPREC         4S 0H      SFLRCDNBR(CURSOR)

のように定義しておくと DSPREC の含まれる行の画面が表示される、という設定となる。
この画面もスクロール・バーを操作して画面の状態を確認して欲しい。

TONAKAI による変換

EnterpriseServerTONAKAI を使うと DSPF を HTML に変換することができる。
TONAKAI によってサブ・ファイルは 上記のようなリスト・ボックスに変換される。
RPG の開発者にとってスクロール・バーを使いたい、という憧れのようなものがあり
この機能は好評である。