- 【初心者歓迎】最新COBOLについての質問スレ
98 :デフォルトの名無しさん[sage]:2015/10/22(木) 16:39:55.27 ID:kqL6nEw1 - >>97
もっと大きなくくりで何をやりたいのか聞く必要があるが、 チェックエラーがある時だけ、RETURN-CODEに5点入れて終了 JOB制御で0点なら次の処理。とかにすれば、全件正常の時だけ次のステップが流れる。
|
- 【初心者歓迎】最新COBOLについての質問スレ
100 :デフォルトの名無しさん[sage]:2015/10/22(木) 23:30:35.35 ID:kqL6nEw1 - そもそも正常、エラーの振り分けをやって、エラーのみリスト出力の方が綺麗だとおもう。
エラー有り時は、JOB正常終了させなければ、次の処理にも進まないし。 でも、あなたの仕様で一番簡単なのは、こんな感じかな? OPENCLOSE技はあまりカッコいいとは言えないけど、内部テーブルやソート使うやり方よりシンプルに出来る気がする。 PROC-RTN. IF エラーあり? THEN MOVE 1TO ERROR-SW MOVE "END" TO END-SW END-IF END-RTN CLOSE FILE1. *エラー時、出力データ削除 IF ERROR-SW = 1 THEN OPEN OUTPUT FILE1 CLOSE FILE1 END-IF
|
- 【初心者歓迎】最新COBOLについての質問スレ
101 :デフォルトの名無しさん[sage]:2015/10/22(木) 23:33:44.14 ID:kqL6nEw1 - COBOLはレコード処理なので、
正常時のみ全件出力よりも、とりあえす処理済みレコード出力しておいて、エラー時に出力を無かったことにする方が簡単。
|
- 【初心者歓迎】最新COBOLについての質問スレ
102 :デフォルトの名無しさん[sage]:2015/10/22(木) 23:50:06.84 ID:kqL6nEw1 - もっと真面目に書いてみた
PERFORM INIT-RTN. PERFORM PROC-RTN UNTIL END-SW = "END". PERFORM END-RTN. INIT-RTN. OPEN INPUT INFILE. OPEN OUTPUT OUTFILE. PERFORM READ-RTN. EXIT. PROC-RTN. IF エラーなし? THEN WRITE OUT-REC FROM IN-REC ELSE MOVE 1TO ERROR-SW MOVE "END" TO END-SW END-IF PERFORM READ-RTN. EXIT. END-RTN CLOSE INFILE. CLOSE OUTFILE. *エラー時、出力データ全件削除 IF ERROR-SW = 1 THEN OPEN OUTPUT OUTFILE CLOSE OUTFILE END-IF. EXIT.
|