OUTFIL Creating Header in Reports
OUTFIL Creating Header in Reports Example
Scenario - Create the report with headers like below -
Student Details Printed on 01/13/2017 AT 05:52:27 Class X Students details Page 1 on 01-13-2017 Std num Std name Department Total marks ------- -------- ---------- -----------
Input File - MATEPK.SORT.INPUT01 - FB file of 80 length
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 00001 student1 dept1 560 00003 student3 dept2 520 00004 student4 dept1 540 00005 student5 dept2 500 00002 student2 dept3 510 00006 student6 dept3 550 00008 student8 dept1 530 00007 student7 dept3 510 00009 student9 dept2 520 00010 student10 dept2 505
JCL -
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
//MATEPKD JOB (123),'MTH',NOTIFY=&SYSUID
//*
//STEP01 EXEC PGM=SORT
//SORTIN DD DSN=MATEPK.SORT.INPUT01,DISP=SHR
//OUTPUT1 DD DSN=MATEPK.SORT.OUTPT01,
// SPACE=(CYL,(1,1),RLSE),DCB=*.SORTIN,
// DISP=(NEW,CATLG,DELETE)
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(1,5,ZD,A)
OUTFIL FNAMES=OUTPUT1,LINES=9,BLKCCH2,
HEADER1=(20:'Student Details',
37:'Printed on ',DATE=(MD4/),' AT ',TIME),
HEADER2=(/,15:'Class X Students details',
40:'Page',PAGE,53:' on ',58:DATE=(MD4-),4/,
1:'Std num',11:'Std name',30:'Department',45:'Total marks',/,
1:'-------',11:'--------',30:'----------',45:'-----------'),
OUTREC=(1,80)
/*
Output File - MATEPK.SORT.OUTPT01 - FB file of 80 length
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 Student Details Printed on 01/13/2017 AT 05:52:27 Class X Students details Page 1 on 01-13-2017 Std num Std name Department Total marks ------- -------- ---------- ----------- 00001 student1 dept1 560 00002 student2 dept3 510 Class X Students details Page 2 on 01-13-2017 Std num Std name Department Total marks ------- -------- ---------- ----------- 00003 student3 dept2 520 00004 student4 dept1 540 Class X Students details Page 3 on 01-13-2017 Std num Std name Department Total marks ------- -------- ---------- ----------- 00005 student5 dept2 500 00006 student6 dept3 550 Class X Students details Page 4 on 01-13-2017 Std num Std name Department Total marks ------- -------- ---------- ----------- 00007 student7 dept3 510 00008 student8 dept1 530 Class X Students details Page 5 on 01-13-2017 Std num Std name Department Total marks ------- -------- ---------- ----------- 00009 student9 dept2 520 00010 student10 dept2 505
Explaining Example -
- SORT FIELDS=(1,5,ZD,A) - sort all outputs in ascending order based on the ZD value from 1 to 5 positions.
- OUTFIL FNAMES=OUTPUT1,.. - Writes the output to the output1 file.
- OUTFIL FNAMES=OUTPUT1,LINES=9,BLKCCH2,… - LINES=8 is equal to a single record per page. LINES=9 means two records will be written to page.
- OUTFIL FNAMES=OUTPUT1,..,HEADER1=(20:'Student Details',37:'Printed on ',DATE=(MD4/),' AT ',TIME), - Creates the main/overall header.
- HEADER2=(/,15:'Class X Students details',40:'Page',PAGE,53:' on ', 58:DATE=(MD4-),4/,1:'Std num',11:'Std name',30:'Department',45:'Total marks',/, 1:'-------',11:'--------',30:'----------',45:'-----------') - Creates pages level header.
- OUTREC=(1,80) - Build the output record from input file of length 80.