COBOLでのファイル作成方法
初歩的な質問となりますが悩んでいます。作成方法について教えていただける方いらっしゃいましたら、よろしくお願いします。
【質問内容】
2つのファイルをマッチングさせて出力ファイルを作成しています。
入力1:売上ファイル(URIF)
顧客ID,氏名,売上日,担当者ID(KOKID,NAME,URIYMD,TANTOU)
0001,A田B夫,20101105,1201
0002,C下D介,20101106,1305
0003,E岡F子,20101107,1103
入力2:売上明細ファイル(MEISAIF)
顧客ID,商品区分,金額(KOKID,KUBUN,KINGAK)
0001,01,10500
0001,03,5250
0002,01,3150
0002,02,1575
0002,03,2100
0003,02,1050
0003,03,7350
出力:売上詳細ファイル(SYOUSAIF)
顧客ID,氏名,売上日,担当者ID,金額1,金額2,金額3(KOKID,NAME,URIYMD,TANTOU,KINGAK1,KINGAK2,KINGAK3)
0001,A田B夫,20101105,1201,10500, ,5250
0002,C下D介,20101106,1305,3150,1575,2100
0003,E岡F子,20101107,1103, ,1050,7350
IF URIF-KOKID = MEISAIF-KOKID
THEN
PERFORM WITH TEST BEFORE
UNTIL URIF-KOKID > MEISAIF-KOKID
PERFORM MAKE-PROC
END-PERFORM
PERFORM MEISAIF-READ-PROC
ELSE
IF URIF-KOKID > MEISAIF-KOKID
THEN
PERFORM MEISAIF-READ-PROC
UNTIL MEISAI-KOKID NOT < URIF-KOKID
ELSE
PERFORM WITH TEST BEFORE
UNTIL MEISAI-KOKID NOT > URIF-KOKID
PERFORM URIF-READ-PROC
END-PERFORM
END-IF
END-IF.
MAKE-PROC SECTION.
MAKE-PROC-010.
MOVE URIF-KOKID TO SYOUSAIF-KOKID.
MOVE URIF-NAME TO SYOUSAIF-NAME.
MOVE URIF-URIYMD TO SYOUSAIF-URIYMD.
MOVE URIF-TANTOU TO SYOUSAIF-TANTOU.
EVALUATE MEISAI-KUBUN
WHEN '01'
MOVE MEISAIF-KINGAK TO SYOUSAIF-KINGAK1
WHEN '02'
MOVE MEISAIF-KINGAK TO SYOUSAIF-KINGAK2
WHEN '03'
MOVE MEISAIF-KINGAK TO SYOUSAIF-KINGAK3
END-EVALUATE.
上記のように作成してみると、出力されたデータが以下のようになってしまいます。
顧客ID,氏名,売上日,担当者ID,金額1,金額2,金額3
0001,A田B夫,20101105,1201,10500, ,
0001,A田B夫,20101105,1201,10500, ,5250
0002,C下D介,20101106,1305,3150, ,
0002,C下D介,20101106,1305,3150,1575,
0002,C下D介,20101106,1305,3150,1575,2100
0003,E岡F子,20101107,1103, ,1050,
0003,E岡F子,20101107,1103, ,1050,7350
どのようにしたら本来の1件化した形にできるのか考えているのですが、
一向に解決する方法が見つかりません。
もし解決策があるようでしたらご指導願いたく思います。
よろしくお願いします。
補足
開始メッセージは フォーマット '***プログラムID 開始 YY/MM/DD HH/MI/SS ***' ※事前にシステム日付、システム時刻を取得すること が抜けていました。