AS400サブファイル

サブファイルとは

複数のレコードを同一画面に表示するには、それぞれ別のレコード様式を定義して、DDSで記述します。
ただし画面のサイズ(一般に80桁x24行)に制約されます。

サブファイルは同じ形式を持つ複数のレコードをメモリ(主記憶域)に保存し、1回の演算命令で表示装置に表示したり、表示装置から読み込んだりする手法です。
ここでメモリ(主記憶域)に保存される同じ形式のレコードのグループをサブファイルと呼びます。サブファイルは画面のサイズの制約を受けません。

サブファイルの表示方法には、表示画面の1行または複数行に1つのレコードを表示する、垂直表示と、表示画面の1行に複数のレコードを表示する、垂直表示があります。

Webでは

Webのページで例えてみます。
DBの内容を10件ごとに表示する一覧画面を作成するとします。
表示する10件のみをDBから取得し、画面に表示します。
10件以上になる場合は「次ページ」のリンクを作成してページング処理をします。
このとき通常はHTTPリクエストが発生します。
HTTPではステートレスなので、HTTPリクエストするときに「2ページ目であること」を送信するか、1ページ目の10件目の「id」を送信し、11件目からのデータを取得します。
つまり、ページングが発生するたびにHTTPリクエストをして、表示対象のデータをDBから取得することになります。
ページングのたびにHTTPのリクエスト-DB読み込み-HTTPレスポンスが発生するため、スピードが遅いです。

ここで、別の方法として最大100件しか表示しないことを前提にすれば一度にDBから100件のデータを取得し、ローカル(ブラウザ)に保持しておくことができます。JavaScriptで10件のみ表示するようなページング処理を実装すれば、通信もDBアクセスも発生しないので高速です。

サブファイルもこのようなイメージです。
読み込む最大数、一度に表示するサイズを決めて使います。
PdUp、PgDnキーでDBからではなく、メモリ上の値でページングができます。
この便利な仕組みが標準で提供されているので少ないコーディングでページング処理が実装できます。
表示だけならWebページの実装もそこまで大変じゃないですが、複数レコードを一括で登録・更新するページをWebページで実装するのはかなり難しいです。

サブファイルを構成する情報

サブファイルは2つの情報から構成されています。1つは表示画面に表示するレコードそのもので、これをサブファイル・レコードと呼び、他の1つはサブファイルを制御するための情報で、サブファイル制御レコードと呼びます。

a.サブファイル・レコード
 表示画面に表示するレコードの形式(フィールド、属性、画面上の表示位置)に関する情報です。
b.サブファイル制御レコード
 サブファイルを制御するための情報です。
 ・サブファイルに含めるレコード数(サブファイル・サイズ)
 ・一度に画面に表示するレコード数(ページ・サイズ)
 ・サブファイル・レコードに関する見出し

サブファイルに含めるレコード数を、サブファイル・サイズと呼び、一度に表示画面に表示するレコード数を、ページ・サイズと呼びます。

サブファイルに一度レコードを書き込むと、その同じ場所に新しいレコードを書き込むことはできません。サブファイルに別のレコードを書き込めるようにするためには、サブファイルを消去する必要があります。

一般にサブファイルを表示している時に、次のページを表示するにはPgDnキーを押し、前のページに戻すにはPgUpキーを押します。またプログラムに戻すためには実行キーを押します。

スポンサーリンク
memordmレクタングル(大)
memordmレクタングル(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
memordmレクタングル(大)