• 締切済み

RPGプログラミングによる、年度毎の集計方法

現在RPGプログラムの研修中なのですが、 RPGプログラムで年度毎の件数集計を行いたいと思っています。 品目マスタというのがあり、 そこに登録日付(TOUROK)というフィールドがあります。 しかし、YYYY/MM/DDという形式で登録されています。 論理ファイルでキーフィールドを選択すると、 登録日付のフィールドは日付順にソートします。 で、RPGプログラムの中で MOVEL TOUROK 4 0 (自分なりには日付の左4つ(年の部分)を取る、 そしてそれを元に年度毎の登録件数を集計するつもり) っと記述します。 しかし、これだと登録日付として 2000/01/01 2000/01/01 2000/01/01 2000/03/01 2001/06/01 プログラム全体を載せているわけではないので、 全体的に私がどのような処理をしようとしているのかが、 分かりづらいと思います。 しかし、必要であれば載せます。 上司のアドバイスとしては論理ファイルを作る時点で、 力技でどうにかなるといいますが、 やり方が分かりません。 どなたかご指導願いします。

みんなの回答

  • mkt8589
  • ベストアンサー率25% (47/181)
回答No.1

RPG、懐かしいです。 データストラクチャで日付フィールドを再定義します 仮に日付をHIDUKEと言うフィールド名とします I仕様書で、DS宣言をします 1  10 HIDUKE 1   40HIDUKEYY 5  5 HIDUKESR1←SRはスラッシュのつもり 6 70HIDUKEYY 8 8 HIDUKESR2 9 100HIDUKEDD これでファイルのHIDUKEフィールドが再定義されます。 C仕様書の最初で、MOVE *BLANK HIDUKEで初期化します。 後は普通に処理してやればOKだと思います。

hikari_tai
質問者

お礼

こちらの方法ではありませんでしたが, 目的の結果がだせました。 どうも質問の仕方が悪かったらしいです。 でも色々と参考になりました。 ありがとうございます。

hikari_tai
質問者

補足

アドバイスありがとうございます。 DS宣言というのをはじめて知りました。 ちょっとどんなものか調べたいと思います。 それからアドバイス頂いたコーディングは、 各々何桁目にあたるのでしょうか? それからそろいかたは 1___10_HIDUKE 1____40HIDUKEYY 5____5_HIDUKE/ 6____70HIDUKEYY 8____8_HIDUKE/ 9___100HIDUKEDD っという感じになるのでしょうか? (ちなみに「_」アンダーバーは桁をそろえるのに使っています。) 何桁目に書くのかすら分かりません。 ご迷惑でなければ追加アドバイスよろしくお願いします。

関連するQ&A