Skolusu
Senior Member
Joined: 07 Dec 2007 Posts: 2205 Location: San Jose
|
|
|
|
notonly4u,
Your summary report is on 3 different fields which cannot be accomplished in a single pass. However you can concatenate the same file 3 times and get the desired results.
The following DFSORT JCL will give you the desired results
Code: |
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
//SORTOUT DD DSN=&&HDR,DISP=(,PASS),SPACE=(TRK,(1,0),RLSE)
//SYSIN DD *
SORT FIELDS=COPY
OUTFIL REMOVECC,BUILD=(14X),HEADER1=(3'$')
//*
//STEP0200 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=&&HDR,DISP=SHR,VOL=REF=*.STEP0100.SORTOUT
// DD DSN=Your input FB-14 file,DISP=SHR
// DD DSN=&&HDR,DISP=SHR,VOL=REF=*.STEP0100.SORTOUT
// DD DSN=Your input FB-14 file,DISP=SHR
// DD DSN=&&HDR,DISP=SHR,VOL=REF=*.STEP0100.SORTOUT
// DD DSN=Your input FB-14 file,DISP=SHR
//SORTOUT DD SYSOUT=*
//SYSIN DD *
INREC IFTHEN=(WHEN=GROUP,BEGIN=(1,3,CH,EQ,C'$$$'),PUSH=(15:ID=1)),
IFTHEN=(WHEN=INIT,OVERLAY=(22:C'00001')),
IFTHEN=(WHEN=(15,1,CH,EQ,C'1'),OVERLAY=(16:01,3)),
IFTHEN=(WHEN=(15,1,CH,EQ,C'2'),OVERLAY=(16:04,6)),
IFTHEN=(WHEN=(15,1,CH,EQ,C'3'),OVERLAY=(16:10,5))
SORT FIELDS=(15,7,CH,A)
SUM FIELDS=(22,5,ZD)
OUTREC IFTHEN=(WHEN=INIT,OVERLAY=(27:13C'0')),
IFTHEN=(WHEN=(15,1,CH,EQ,C'1'),OVERLAY=(37:C'1')),
IFTHEN=(WHEN=(15,1,CH,EQ,C'2'),OVERLAY=(27:22,5,22:5C'0',38:C'1')),
IFTHEN=(WHEN=(15,1,CH,EQ,C'3'),OVERLAY=(32:22,5,22:5C'0',39:C'1'))
OUTFIL OMIT=(1,3,CH,EQ,C'$$$'),BUILD=(80X),REMOVECC,NODETAIL,
TRAILER1=('FIELD,',
TOT=(22,5,ZD,M11,LENGTH=5),',',TOT=(37,1,ZD,M11,LENGTH=5),
',DATE,',
TOT=(27,5,ZD,M11,LENGTH=5),',',TOT=(38,1,ZD,M11,LENGTH=5),
',CUSTID,',
TOT=(32,5,ZD,M11,LENGTH=5),',',TOT=(39,1,ZD,M11,LENGTH=5))
//* |
The output of this job is a 80 byte file with the following contents
Code: |
FIELD,00012,00002,DATE,00008,00003,CUSTID,00010,00002
|
|
|