- ベストアンサー
RPG 配列宣言について
いつもお世話になっております。 IBM AS/400の駆け出しプログラマーです。 今、配列を使ったシステムを組んでいるのですが、 たとえばAというDBの項目に同じものがいくつかあるとします。 課所コード1(KSCD1)、課所コード2(KSCD2)、・・・・ といったような項目です。 そのAのファイルを読み、課所コードを配列に入れたいのですが、 配列KSCというものに KSC,1にはKSCD1 KSC,2にはKSCD2といった感じです。 演算仕様書でMOVEL KSCD1 KSC,1 と個々にやっていく方法以外にレコードを読んだときに自動的に配列に入れるような方法があったら教えていただきたいと思います。 何せ個々に入れていくとそれだけで80行使ってしまうので・・・・ 知っている方がいらっしゃいましたらどうかお助けください。 お願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
以下の様にプログラミングすれば可能です。 E* テーブル E KSC 80 5 (80はテーブル数、5は桁数) I DS I 1 5 KSCD1 (KSCD1はAファイルのフィールド名) I 6 10 KSCD2 I 11 15 KSCD3 I 16 20 KSCD4 ・ ・ ・ I 396 400 KSCD80 あとはAファイルを読み込めば KSCD1 --> KSC,1 、KSCD2 --> KSC,2 ・・・・ KSCD80 --> KSC,80に自動的にセットされます。 この方法を使えば、画面ファイルのフィールドも同様に使用できます(私は良く使用しております)。 何かわからないことがあれば、補足します。
その他の回答 (1)
- ititi
- ベストアンサー率0% (0/1)
暫くRPGから離れており自信はありませんが、、、 課所コードが同じ項目長で、連続しているならば、 ファイルのフィールドをRPG上で再定義してひとつにまとめておき、DSで分割すればよいのだと思います。 回答にあたり下記を参考にしました。 http://wague.zero-city.com/AS400/AS4001/AS4040.htm (ファイルレコードを再定義する方法) http://www2.odn.ne.jp/~cbn33260/AS400/rpg-cob.htm (再配置(REDEFINES)、配列 (OCCURS))