>> Wow, I did not want this to be so difficult...but given a choice, I would 
>> like the second approach

Billy,

It isn't that difficult; we just need to adjust the way we are summing the 
results. Since you did not want the department row, we just need to switch to 
using SUM instead of Reporting features.  Since we are using SUM, we need to 
handle the overflow of data, so when summing the 9 byte items, we will pad 3 
zeroes and sum it as 12 byte so that we account for overflow of the summation.

As for the header, generating a symbol by reading the 2nd record is the 
simplest and easiest way.

//**********************************************************
//* The filename is on the 2nd record of the file. use SORT*
//* to read just that record and generate a symbol of the  *
//* filename.                                              *
//**********************************************************
//GETFNAME EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//SORTIN   DD DISP=(OLD,PASS),DSN=&&FB
//SORTOUT  DD DSN=&&S,DISP=(,PASS),SPACE=(TRK,(1,1),RLSE)
//SYSIN    DD *
  OPTION COPY,SKIPREC=1,STOPAFT=1
  OUTREC BUILD=(02,44,JFY=(SHIFT=LEFT,
                            LEAD=C'FILENAME,C''',
                           TRAIL=C'''',
                          LENGTH=80))
/*
//**********************************************************
//* Generate summary report of "D" records                 *
//**********************************************************
//GENREP   EXEC PGM=SORT,COND=(0,LT)
//SYSOUT   DD SYSOUT=*
//SYMNAMES DD DISP=(OLD,DELETE),DSN=&&S
//SYMNOUT  DD SYSOUT=*
//SORTIN   DD DISP=(OLD,PASS),DSN=&&FB
//SORTOUT  DD SYSOUT=*
//SYSIN    DD *
  INCLUDE COND=(019,03,FS,EQ,NUM,AND,      # Field is numeric and
                022,01,CH,EQ,C'D')         # Type = D

  INREC BUILD=(001,03,                     # Department
               3C'0',                      # pad 3 zeros
               102,09,UFF,M11,LENGTH=9,    # item qty
               C'00000001')                # init counter

  SORT FIELDS=(01,03,CH,A)                 # Department
   SUM FIELDS=(04,12,ZD,                   # item
               16,08,ZD)                   # count

  OUTFIL REMOVECC,
     BUILD=(C' DEPARTMENT  ',
            01,03,
            16,08,ZD,M10,LENGTH=8,
            C' ARTICLES, TOTAL ITEMS: ',
            04,12,ZD,M10,LENGTH=12),
  HEADER1=(FILENAME),
  TRAILER1=('*** TOTAL *** : ',
            TOT=(16,08,ZD,M10,LENGTH=8),
            ' ARTICLES, TOTAL ITEMS: ',
            TOT=(04,12,ZD,M10,LENGTH=12))
/*


>> but for the sake of learning (if you don't mind), I would welcome the first 
>> option, also, to make my training more complete!

Just run your existing control cards without any D records and see the output.  
 (You will not have the filename as header, but you will have 1 row for 
department and total row)

Thanks,
 Kolusu
DFSORT Development
IBM Corporation


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to