最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

2.2.サブファイルの処理の方法

[ Previous ] [ HOME ] [ Upper ] [ Next ]


サブファイルの使い方は、入力と照会でやや異なります。ここでは、照会について、細かく説明します。データ入力は、別の機会にします。


サブファイルを使った照会プログラムのロジック

照会したいデータファイル(たとえば、顧客マスタなど)を仮に、「Aファイル」とします。
サブファイルレコードを「SFLRCD」、
サブファイルコントロールレコードを「SFLCTL」、
処理するプログラムを「INQ」とします。これらをもとに、簡単にプログラムINQの基本的なロジックを表現すると、

SFLRCDを初期化(SFLCTLのキーワードを指定)

Aファイルからデータを取り出す

SFLRCDにRRN(相対レコード番号)を一件ずつカウントアップしてRecordを書き出す

必要なだけ、レコードを書き出ししたら、SFLRCDとSFLCTLを表示する

となります。


サブファイルのプログラム内部処理パターン

表示したいファイルを読み込んで、サブファイルを作成して、画面に表示するという単純なことにも、詳しく見ると3つ方法があります。

パターン1 Aファイルの全レコードをSFLRCDに書き出して、表示する。
パターン2 AファイルのデータをSFLRCDの1ページ分読み込んで表示して、ロールアップを押したら、現在の内容をメモリに貯えてから、次の1ページを読み込んで表示して...を繰り返す。ロールダウンは、Aファイルを読まずに、メモリに貯えていた内容を表示する。
パターン3 AファイルのデータをSFLRCDの1ページ分読み込んで表示して、ロールアップを押したら、現在の内容をメモリに貯えずに、次の1ページを読み込んで表示して...を繰り返す。ロールダウンは、Aファイルを再び、読み込んで表示する。

プログラムの難易度

パターン1が一番簡単で、次が、パターン2、さらにもっとも難しいのがパターン3です。

各パターンの欠点

パターン1 たとえば、Aファイルのレコードが5000件あると、表示するまでに時間がかかる。(これは致命的です。)
パターン2 Aファイルが、変動の激しいレコードを含むとすると、ロールアップを押した後、メモリに待避されたレコード内容と、実際のAファイルのレコード内容が違うことになります。
パターン3 パターン1やパターン2の欠点は克服できますが、プログラムの作成がやや面倒。

各パターンのまとめ

特徴 システム負荷 作成難易度
パターン1 全レコード一括表示

易しい

パターン2 ロールアップごとに1ページ表示して、メモリに格納する

普通

パターン3 ロールアップやロールダウンごとに1ページ表示して、メモリに格納しない。

難しい

 

慣れた人なら、パターン1など2時間くらいで作成できるでしょう。しかし、パターン1は作成しやすいという長所よりも、全レコード一括処理の時間や資源の無駄使いという短所の方が重いのです。よく、IBMのプログラムのマニュアルには、パターン1が載っていますが、あれは真似しない方がいいでしょう。
但し、レコード件数が100件以内のデータ(たとえば、1つの伝票の明細レコードなど)の照会に使用するのであれば、むしろ、パターン1の長所が生かされて、いいと思います。
ここで、私が強くお勧めするのは、 パターン2パターン3です。

 


[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送