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

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

よく使うマニュアルです

Wiki

updated on 2004.06.23

2.3.どのように定義するのか

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


DDSの定義

サブファイルの定義方法は簡単で、

  • サブファイルのレコード様式定義
  • サブファイルのコントロール様式定義

の2つに別れます。

サブファイルのレコード」とは、
「リスト形式の1行分(または複数行分)」のレコード様式定義です。さらに同時に、この1行が画面上の何行目から開始するのかも(必然的に)定義されます。
サブファイルのコントロール」とは、
上記の定義の直後に置く、「レコードを制御する」レコード様式定義です。上記のレコードを1画面に何行表示して、全体で何行かを定義したり、サブファイルを削除したり、消去したり、初期化したりするキーワードを指定したりします。また、このレコード内にフィールドの定義をすれば、サブファイルレコード定義内の各フィールドとこのコントロール定義の各フィールドを同時にプログラムで読み込めます。

RPGの定義

サブファイルは、プログラム内部では、言ってみれば、相対レコード処理の物理ファイルに対するファイル処理の一つに近いものです。 但し、サブファイルは通常のデータファイルではないので、ディスク上のデータをやり取りするわけではありません。あくまで、サブファイルのデータの格納先は、メモリ内です。よって、サブファイル内のデータをDSPPFMで照会できないし、CLRPFMやINZPFMの対象ともなりません。つまり、表示された画面以外で、レコードの内容を照会したいならば、デバッグによるしかありません。 また、消去や初期化はサブファイル用のコマンド(DDSキーワード)が準備されています。これらは、RPG内でそのキーワードに定義付けされた標識のオン、オフでその機能を実行します。 上記のように、サブファイルは、一種の「相対レコード処理のファイル」ですので、F仕様書で、サブファイル一つに付き、一個の相対レコード番号を格納するフィールドを定義します。このフィールドは、通常のフィールドとは違い、極めて特殊です。ここに、数字をセットして、サブファイルにWRITEすれば、その値が行番号として書き出されます。また、READCやCHAIN命令でサブファイルレコードをゲットすれば、取り出した行番号は、このフィールドの中に入ってきます。つまり、サブファイルのレコード番号(行番号)とRPGプログラムを結び付ける橋渡しをしているわけです。

その他の考慮事項

OSはサブファイルのODPを作成します。つまり、サブファイルの情報をINFORMATION DSで取り出せます。

サブファイルサイズ(全体のレコード数)をページサイズ(一ページのレコード数)と同じにする場合と、サブファイルサイズをページサイズより大きくする場合では、RPGの処理方法が異なります。注意してください。

以前のバージョンでは、WINDOWキーワードがなく、どうしてもウィンドウ表示をしたい場合は、KEEP,ASSUME,PUTOVRなどで、ウィンドウ表示をしていましたが、これらでは、サブファイルとともに使用できませんでした。ところが、バージョン2(?覚えていない)以降ではWINDOWキーワードができて、サブファイルも簡単にウィンドウ表示できるようになりました。とても便利です。


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

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

 

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