//FILEA DD * ←入力データ
0010000100
0010000200
0030000300
0030001000
1110008000
//SYSLIN DD *
LIST OFF
PARM LIST(NOPARM NOFILE)
FILE FILEA ←入力データ定義
TEN 1 3 N
DAT * 7 N 0
FILE FILEZ FB(80 8000) VIRTUAL RETAIN ←中間ファイル
Z-TEN 1 3 N HEADING('ミセ') MASK('999')
Z-TALLY * 10 P HEADING('ケンスウ') ←TALLYフィールドが自動的に挿入される
Z-DAT2 * 10 P 0 HEADING('DATA')
*
WKPER W 3 P 1 HEADING('ヘイキン') MASK('ZZZ9.9')
*
JOB INPUT FILEA
PRINT REPT1
REPORT REPT1 SUMMARY SUMFILE FILEZ NOHEADING ←サマリー結果を中間ファイルに出力
CONTROL TEN
LINE 1 TEN DAT ←複数のLINEがあっても1件で出力されます
*
JOB INPUT FILEZ ←中間ファイルをREAD
WKPER = Z-DAT2 / Z-TALLY ←編集して
PRINT REPT2 ←PRINTする
REPORT REPT2 TITLESKIP 1 SPACE 1
TITLE 1 '***** TEST *****'
LINE 1 Z-TEN Z-DAT2 Z-TALLY WKPER
/*
↓実行結果
***** TEST *****
ミセ DATA ケンスウ ヘイキン
001 300 2 150.0
003 1,300 2 650.0
111 8,000 1 8000.0
※この例では、
入力ファイル=5件
中間ファイル=3件
レポート=3件
となります。
※JCL上、FILEZのDDは不要です。
|