//FILEA DD * ←INPUTファイル(6件)
991126REC1
991129REC2
991130REC3
991130REC4
991129REC5
991126REC6
//SYSLIN DD *
LIST OFF
PARM LIST(NOPARM NOFILE)
FILE FILEA ←INPUTファイル定義
I-DAY 1 6 N
I-NAME * 10 A
*
CNT W 5 P 0 VALUE 0 ←ワークエリアをWタイプで定義
*
JOB INPUT FILEA FINISH LAST-PROC
CNT = CNT + 1
PRINT REPT1
LAST-PROC. PROC
DISPLAY SKIP 2 'LAST-PROC = ' RECORD-COUNT ' ケン' ←EASYのシステムフィールド(=RECORD-COUNT)
DISPLAY ' CNT = ' CNT ' ケン' ←ユーザー定義のフィールド(=CNT)
END-PROC.
REPORT REPT1 SPACE 1 TITLESKIP 1
*SEQUENCE I-DAY
TITLE 1 '***** TEST *****'
LINE 1 I-DAY I-NAME
TERMINATION. PROC
DISPLAY 'TERMINATION = ' RECORD-COUNT ' ケン' ←EASYのシステムフィールド(=RECORD-COUNT)
DISPLAY ' CNT = ' CNT ' ケン' ←ユーザー定義のフィールド(=CNT)
END-PROC.
/*
//
↓実行結果例
<実行結果1>…SEQUENCEをコメントにした場合
99年12月01日 ***** TEST *****
I-DAY I-NAME
991126 REC1
991129 REC2
991130 REC3
991130 REC4
991129 REC5
991126 REC6
LAST-PROC = 6 ケン ←全て正しい件数
CNT = 6 ケン
TERMINATION = 6 ケン
CNT = 6 ケン
<実行結果2>…SEQUENCEがある場合
LAST-PROC = 6 ケン ←FINISHでの表示件数は正しいが
CNT = 6 ケン
99年12月01日 ***** TEST *****
I-DAY I-NAME
991126 REC1
991126 REC6
991129 REC2
991129 REC5
991130 REC3
991130 REC4
TERMINATION = 4 ケン ←TERMINATIONでは正しくない件数
CNT = 4 ケン
|