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
プログラム全体を載せているわけではないので、
全体的に私がどのような処理をしようとしているのかが、
分かりづらいと思います。
しかし、必要であれば載せます。
上司のアドバイスとしては論理ファイルを作る時点で、
力技でどうにかなるといいますが、
やり方が分かりません。
どなたかご指導願いします。
回答(1件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.1ベストアンサー10pt
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だと思います。
この回答への補足
アドバイスありがとうございます。
DS宣言というのをはじめて知りました。
ちょっとどんなものか調べたいと思います。
それからアドバイス頂いたコーディングは、
各々何桁目にあたるのでしょうか?
それからそろいかたは
1___10_HIDUKE
1____40HIDUKEYY
5____5_HIDUKE/
6____70HIDUKEYY
8____8_HIDUKE/
9___100HIDUKEDD
っという感じになるのでしょうか?
(ちなみに「_」アンダーバーは桁をそろえるのに使っています。)
何桁目に書くのかすら分かりません。
ご迷惑でなければ追加アドバイスよろしくお願いします。
この回答へのお礼
こちらの方法ではありませんでしたが,
目的の結果がだせました。
どうも質問の仕方が悪かったらしいです。
でも色々と参考になりました。
ありがとうございます。
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示











