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

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

よく使うマニュアルです

Wiki

updated on 2004.06.23

2.13.パターン3の概説

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


パターン3は、パターン2の拡張版ともいえます。パターン2を理解しないまま、パターン3を理解しようとしてはいけません。

パターン2では、メモリに該当する部分が他のユーザーにより変更されても、ロールダウンを押すと、メモリに入ったときの(古い)情報が単純に「巻き戻されて」表示されます。

一方、パターン3の大きな特徴は、きっちり1ページ分づつ、画面に表示することです。つまり、ロールアップを押しても、ロードされたサブファイルのレコードは、メモリには貯えられません。すべて、プログラマー自身が制御せねばなりません。

また、ロールダウンを押したときも、ファイルを読み込むので、最新の情報が表示され、マルチユーザー向けの処理となります。また、サブファイルの最大行は9999まで(相対レコード番号は4桁まで)ですが、パターン3ならば、実質無限大です。


作成のポイント

さて、このパターン3の作成のポイントは、以下の通りです。

DDSで、SFLPAG(ページあたりの行数) = SFLSIZ(全体のレコード数)と定義すること。
DDSで、ROLLUPとROLLDOWNを定義すること。
ロールアップのときは、サブファイルクリアをして、レコードを前方に1ページ分読み込む。
ロールダウンのときは、一度、前ページの最初までカウントしながらREADPをしてから、ロールアップと同じ処理をする。一度、前ページの最初までカウントしながらREADPをしてから」という部分で、驚かれる方もいるでしょうが、実際には、まったくストレスなく動きます。高々2ページ分(サブファイルを表示した時点では、ファイルカーソルはそのページの最後にある)だけのREADPなのですから。

また、前ページの最初にSETLLをすると説く記事もありましたが、これが可能なのは、ユニークなキーを持つファイルに対してのみです。実際は重複キーが多いので、プラクティカルな手法ではありません。


入力フィルードをもつサブファイル

気を付けねばならないのは、入力フィルードをもつサブファイルです。

パターン2だと、一ページ分ずーとオプションを入力して、実行キーを押さず、次のページもずーとオプションを付けて、最後に実行キーを押すと、一行ずつオプションがメモリに記録されているので、すべてのレコードに対して、処理が可能です。(よく、スプール処理画面で、とんとんと4を入力して、実行キーを押す、あれです。)

しかし、パターン3では、ロールアップを押すと、まずサブファイルクリアをするので、入力したオプションは消えてしまいます。私のやり方は、ロールアップを押したら、まず、ロールアップ処理をする前(サブファイルクリアをする前)に、入力されたオプションの処理をします。それから、ロールアップ処理をします。これが、最も合理的でしょう。

もちろん、ロールアップをするたびに、配列に、必要事項をセットして、実行キーが押されたら、そこを参照して処理をしてもいいのですが、ぐんと、面倒なプログラムになってしまいます。ユーザーはそこまで期待していないと思います。(但し、あらかじめ、説明せねばなりません。一ページ以上のオプション処理をする場合、パターン2とパターン3では動きが異なるからです。)


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

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

 

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