dポイントプレゼントキャンペーン実施中!

いつもお世話になっております。
IBM AS/400の駆け出しプログラマーです。
今、配列を使ったシステムを組んでいるのですが、
たとえばAというDBの項目に同じものがいくつかあるとします。
課所コード1(KSCD1)、課所コード2(KSCD2)、・・・・
といったような項目です。
そのAのファイルを読み、課所コードを配列に入れたいのですが、
配列KSCというものに
KSC,1にはKSCD1
KSC,2にはKSCD2といった感じです。
演算仕様書でMOVEL  KSCD1  KSC,1
と個々にやっていく方法以外にレコードを読んだときに自動的に配列に入れるような方法があったら教えていただきたいと思います。
何せ個々に入れていくとそれだけで80行使ってしまうので・・・・
知っている方がいらっしゃいましたらどうかお助けください。
お願い致します。

A 回答 (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に自動的にセットされます。
この方法を使えば、画面ファイルのフィールドも同様に使用できます(私は良く使用しております)。
何かわからないことがあれば、補足します。
    • good
    • 3

暫くRPGから離れており自信はありませんが、、、


課所コードが同じ項目長で、連続しているならば、
ファイルのフィールドをRPG上で再定義してひとつにまとめておき、DSで分割すればよいのだと思います。

回答にあたり下記を参考にしました。
http://wague.zero-city.com/AS400/AS4001/AS4040.htm
(ファイルレコードを再定義する方法)
http://www2.odn.ne.jp/~cbn33260/AS400/rpg-cob.htm
(再配置(REDEFINES)、配列 (OCCURS))
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています