//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DISP=SHR,DSN=Your Input FB 40 byte file
//SORTOUT DD DSN=&&SUMMARY,DISP=(,PASS),SPACE=(CYL,(X,Y),RLSE)
//PADRECD DD DSN=&&PADRECD,DISP=(,PASS),SPACE=(CYL,(X,Y),RLSE)
//SYSIN DD *
OPTION COPY
INREC BUILD=(1,4, $ STORE
6,2, $ REGION
X,
9,1,CHANGE=(5,C'Y',C'10101',
C'N',C'01011'),
NOMATCH=(C'00000'))
OUTFIL REMOVECC,NODETAIL,
BUILD=(60X),
SECTIONS=(1,7,
TRAILER3=(1,7,
X,
TOT=(08,1,ZD,EDIT=(III,IIT)),
X,
TOT=(09,1,ZD,EDIT=(III,IIT)),
X,
TOT=(10,1,ZD,EDIT=(III,III,IIT)),
X,
TOT=(11,1,ZD,EDIT=(III,III,IIT)),
X,
TOT=(12,1,ZD,EDIT=(III,III,IIT))))
OUTFIL FNAMES=PADRECD,
REMOVECC,NODETAIL,BUILD=(60X),
SECTIONS=(1,4,
TRAILER3=(1,4,C' 1 ',X,2C' 0 ',3C' 0 ',/,
1,4,C' 2 ',X,2C' 0 ',3C' 0 ',/,
1,4,C' 3 ',X,2C' 0 ',3C' 0 ',/,
1,4,C' 4 ',X,2C' 0 ',3C' 0 ',/,
1,4,C' 5 ',X,2C' 0 ',3C' 0 ',/,
1,4,C' 6 ',X,2C' 0 ',3C' 0 ',/,
1,4,C' 7 ',X,2C' 0 ',3C' 0 ',/,
1,4,C' 8 ',X,2C' 0 ',3C' 0 ',/,
1,4,C' 9 ',X,2C' 0 ',3C' 0 ',/,
1,4,C'10 ',X,2C' 0 ',3C' 0 ',/,
1,4,C'11 ',X,2C' 0 ',3C' 0 ',/,
1,4,C'12 ',X,2C' 0 ',3C' 0 '))
//*
//STEP0200 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN01 DD DSN=&&SUMMARY,DISP=SHR
//SORTIN02 DD DSN=&&PADRECD,DISP=SHR
//SORTOUT DD SYSOUT=*
//SYSIN DD *
MERGE FIELDS=(01,7,CH,A),EQUALS
SUM FIELDS=NONE
OUTREC IFTHEN=(WHEN=INIT,
BUILD=(03:01,4, $ STORE #
16:05,3,UFF,EDIT=(TTT), $ REGION
28:05,3,JFY=(SHIFT=LEFT,
LEAD=C'SUB-DIV',
LENGTH=20),
62:09,7,
81:01,7,
89:SEQNUM,6,ZD,RESTART=(1,4),
97:17,44)),
IFTHEN=(WHEN=(89,6,ZD,GT,1),
OVERLAY=(03:4X))
OUTFIL REMOVECC,IFOUTLEN=80,
IFTHEN=(WHEN=(97,7,UFF,GT,0),
BUILD=(01:01,52,
53:C'Y',
54:54,27,/,
07:07,45,
53:C'N',
62:97,7)),
HEADER2=(/,'REPORT TOTAL REPORT',
' PGM-NAME : DFSORT',/,
'RUN DATE - ',DATE,60:'PAGE ',PAGE,/,/,
'FIELD#1 FIELD#2 FIELD#3',
' FIELD#4 FIELD#5',/),
SECTIONS=(81,4,
TRAILER3=(/,
17:'TOTAL STORE ',81,4,' INBOUND ITEMS = ',
TOT=(105,11,UFF,EDIT=(III,III,IIT)),/,
17:'TOTAL STORE ',81,4,' OUTBOUND ITEMS = ',
TOT=(117,11,UFF,EDIT=(III,III,IIT)),/,
17:'TOTAL STORE ',81,4,' ITEMS = ',
TOT=(129,11,UFF,EDIT=(III,III,IIT)),/)),
TRAILER1=(/,
02:'INVENTORY INBOUND GRAND TOTAL =',
TOT=(105,11,UFF,EDIT=(III,III,IIT)),/,
02:'INVENTORY OUTBOUND GRAND TOTAL =',
TOT=(117,11,UFF,EDIT=(III,III,IIT)),/,
02:'INVENTORY GRAND TOTAL =',
TOT=(129,11,UFF,EDIT=(III,III,IIT)),/)
//* |