Posted: Thu Dec 18, 2003 6:30 am Post subject: Printing Sectioned Reports using ICETOOL !
I am trying to print the sectioned reports by using ICETOOL. There I am using BREAK to have different sections for different Authors. But my output is not as per the expectation.
My JCL is here -
Code:
--------------------------------------------------------------------------
//TOOL01 EXEC PGM=ICETOOL,REGION=1024K
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//TOOLIN DD *
DISPLAY FROM(INPUT) LIST(SECTNRPT) -
TITLE('BOOKS FOR INDIVIDUAL AUTHORS') PAGE -
HEADER('BOOK TITLE') ON(1,15,CH) -
HEADER('PRICE') ON(60,5,ZD) BLANK -
BTITLE('AUTHOR : ') BREAK(51,10,CH) -
BAVERAGE('AVERAGE FOR THIS AUTHOR') -
BTOTAL('TOTAL FOR THIS AUTHOR') -
AVERAGE('AVERAGE OF ALL AUTHORS') -
TOTAL('TOTAL FOR ALL AUTHORS')
/*
//INPUT DD *
RDR ???? 20 1
INS FLMI ORG 1234 5
AMER ENG1 KATARIA 1790 1
AMER ENG2 KATARIA 2790 2
AMER ENG3 KATARIA 3790 3
COMM SKILLS MEHRA 6782 5
LOMA1 US 1000 1
LOMA2 US 2000 2
LOMA3 US 3000 3
/*
//SECTNRPT DD SYSOUT=*
//*
I think Book title is just for the printing purpose, it has nothing to do with the BREAK. Please let me know the changes which I need to make in my JCL code, in order to print all the Books (having different titles) of the same Author on a single Page and then ICETOOL inserts the BREAK so that each PAGE displays the books of a single Author.
Just for example -
BOOKS FOR INDIVIDUAL AUTHORS - 3 -
AUTHOR : KATARIA
BOOK TITLE PRICE
--------------- ----------------
AMER ENG1 1790
AMER ENG2 2790
AMER ENG3 3790
Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
Posted: Thu Dec 18, 2003 8:51 am Post subject:
Nancy,
I was refering to the ON statement which has for the book title .ie. ON(1,15,CH).
Change your toolin cards to the following so that you get the desired results
Code:
DISPLAY FROM(INPUT) LIST(SECTNRPT) -
TITLE('BOOKS FOR INDIVIDUAL AUTHORS') PAGE -
HEADER('BOOK TITLE') ON(51,10,CH) -
HEADER('PRICE') ON(60,5,ZD) BLANK -
BTITLE('AUTHOR : ') BREAK(51,10,CH) -
BAVERAGE('AVERAGE FOR THIS AUTHOR') -
BTOTAL('TOTAL FOR THIS AUTHOR') -
AVERAGE('AVERAGE OF ALL AUTHORS') -
TOTAL('TOTAL FOR ALL AUTHORS')
I tried with your code and getting the below output.
BOOKS FOR INDIVIDUAL AUTHORS - 3 -
AUTHOR : KATARIA
BOOK TITLE PRICE
---------- ----------------
KATARIA 1790
KATARIA 2790
KATARIA 3790
AVERAGE FOR THIS AUTHOR
2790
TOTAL FOR THIS AUTHOR 8370
Reason behind this is we have changed the Title location to Author and so Author is getting printed instead of Title but all other things are looking just fine. What next to do to have Book titles and not The Authors ?
Thanks Kolusu.
Your code is creating the desired report for me.
Just one more doubt here.
Suppose I don't want the Author Name to be repeated every time in the report amd only want to have BOOK TITLE and PRICE since the AUTHOR has already been printed at the top. My report will look like below.
Quote:
AUTHOR : KATARIA
BOOK TITLE PRICE
--------------- ----------------
AMER ENG1 1790
AMER ENG2 2790
AMER ENG3 3790
AVERAGE FOR THIS AUTHOR 2790
TOTAL FOR THIS AUTHOR 8370
It doesn't create the desired report. You are just sorting the Input datastream before displaying by adding the SORT step but please note that my INPUT data is already sorted in that way.
One Observation here.
When I code the SORT condition as below
Code:
SORT FIELDS=(1,15,A,51,10,A),FORMAT=CH
I get the Report like
Code:
BOOKS FOR INDIVIDUAL AUTHORS - 1 -
AUTHOR : KATARIA
BOOK TITLE PRICE
--------------- ----------------
AMER ENG1 1790
AMER ENG2 2790
AMER ENG3 3790
AVERAGE FOR THIS AUTHOR 2790
TOTAL FOR THIS AUTHOR 8370
This is what we desired, But for the next Author US, still the Report has printed in the wrong manner, i.e.
Code:
BOOKS FOR INDIVIDUAL AUTHORS - 4 -
AUTHOR : US
BOOK TITLE PRICE
--------------- ----------------
LOMA1 1000
AVERAGE FOR THIS AUTHOR 1000
TOTAL FOR THIS AUTHOR 1000
BOOKS FOR INDIVIDUAL AUTHORS - 5 -
AUTHOR : US
BOOK TITLE PRICE
--------------- ----------------
LOMA2 2000
AVERAGE FOR THIS AUTHOR 2000
TOTAL FOR THIS AUTHOR 2000
BOOKS FOR INDIVIDUAL AUTHORS - 6 -
AUTHOR : US
BOOK TITLE PRICE
--------------- ----------------
LOMA3 3000
Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
Posted: Fri Dec 19, 2003 10:08 am Post subject:
Nancy,
I don't have ICETOOL at my shop. So I really cannot test all features of ICETOOL. Any way the following JCL will give you the desired results. I have used the regular report features.
Code:
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
RDR ???? 20 1
INS FLMI ORG 1234 5
AMER ENG1 KATARIA 1790 1
AMER ENG2 KATARIA 2790 2
AMER ENG3 KATARIA 3790 3
COMM SKILLS MEHRA 6782 5
LOMA1 US 1000 1
LOMA2 US 2000 2
LOMA3 US 3000 3
//SORTOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(51,10,A,1,15,A),FORMAT=CH
OUTFIL REMOVECC,
HEADER1=(2/,24:'BOOKS FOR INDIVIDUAL AUTHORS',55:'DATE:',&DATE,/,
80:X),
OUTREC=(6:1,15,34:60,5,ZD,M10,LENGTH=5,80:X),
SECTIONS=(51,10,SKIP=P,
HEADER3=(2:'AUTHOR:',51,10,5X,'PAGE:',&PAGE,2/,
6:'BOOK TITLE',34:'PRICE',/,
6:'==========',34:'====='),
TRAILER3=(80:X,/,
6:'AVERAGE OF AUTHOR:',27:AVG=(60,05,ZD,M10,LENGTH=5),/,
6:'TOTAL OF AUTHOR :',27:TOTAL=(60,05,ZD,M10,LENGTH=5),/,
80:X)),
TRAILER1=(6:'AVERAGE FOR ALL AUTHORS:',
34:AVG=(60,05,ZD,M10,LENGTH=5),/,
6:'TOTAL FOR ALL AUTHORS:',
34:TOTAL=(60,05,ZD,M10,LENGTH=5))
//*
This will produce the report as follows:
Code:
BOOKS FOR INDIVIDUAL AUTHORS DATE:12/19/03
AUTHOR:???? PAGE: 1
BOOK TITLE PRICE
========== =====
RDR 20
AVERAGE OF AUTHOR: 20
TOTAL OF AUTHOR : 20
AUTHOR:FLMI ORG PAGE: 2
BOOK TITLE PRICE
========== =====
INS 1234
AVERAGE OF AUTHOR: 1234
TOTAL OF AUTHOR : 1234
AUTHOR:KATARIA PAGE: 3
BOOK TITLE PRICE
========== =====
AMER ENG1 1790
AMER ENG2 2790
AMER ENG3 3790
AVERAGE OF AUTHOR: 2790
TOTAL OF AUTHOR : 8370
AUTHOR:MEHRA PAGE: 4
BOOK TITLE PRICE
========== =====
COMM SKILLS 6782
AVERAGE OF AUTHOR: 6782
TOTAL OF AUTHOR : 6782
AUTHOR:US PAGE: 5
BOOK TITLE PRICE
========== =====
LOMA1 1000
LOMA2 2000
LOMA3 3000
AVERAGE OF AUTHOR: 2000
TOTAL OF AUTHOR : 6000
AVERAGE FOR ALL AUTHORS: 2489
TOTAL FOR ALL AUTHORS: 22406
Joined: 02 Dec 2002 Posts: 1618 Topics: 31 Location: San Jose
Posted: Fri Dec 19, 2003 11:25 am Post subject:
Nancy and Kolusu,
You're making this more complicated than it needs to be. You don't need a SORT operator since the input file is already sorted by Author. If you don't want the Author printed in the detail records, then just remove the HEADER and ON field for the Author from Kolusu's original job.
BREAK indicates the key you want to section the report by - the BREAK field will be printed in the break title line along with the BTITLE string. ON indicates a field you wanted printed in the detail lines.
So you need:
Code:
DISPLAY FROM(INPUT) LIST(SECTNRPT) -
TITLE('BOOKS FOR INDIVIDUAL AUTHORS') PAGE -
*HEADER('AUTHOR NAME') ON(51,10,CH) -
HEADER('BOOK TITLE') ON(1,15,CH) -
HEADER('PRICE') ON(60,5,ZD) BLANK -
BTITLE('AUTHOR : ') BREAK(51,10,CH) -
BAVERAGE('AVERAGE FOR THIS AUTHOR') -
BTOTAL('TOTAL FOR THIS AUTHOR') -
AVERAGE('AVERAGE OF ALL AUTHORS') -
TOTAL('TOTAL FOR ALL AUTHORS')
Notice that I've commented out the HEADER and ON field for the AUTHOR so they won't appear in the detail lines. The AUTHOR field will still appear in the BREAK title. You can remove the commented out line.
Here's an excerpt of the report you'll get:
Code:
...
BOOKS FOR INDIVIDUAL AUTHORS - 3 -
AUTHOR : KATARIA
BOOK TITLE PRICE
--------------- ----------------
AMER ENG1 1790
AMER ENG2 2790
AMER ENG3 3790
AVERAGE FOR THIS AUTHOR 2790
TOTAL FOR THIS AUTHOR 8370
...
BOOKS FOR INDIVIDUAL AUTHORS - 5 -
AUTHOR : US
BOOK TITLE PRICE
--------------- ----------------
LOMA1 1000
LOMA2 2000
LOMA3 3000
AVERAGE FOR THIS AUTHOR 2000
TOTAL FOR THIS AUTHOR 6000
BOOKS FOR INDIVIDUAL AUTHORS - 6 -
BOOK TITLE PRICE
--------------- ----------------
AVERAGE OF ALL AUTHORS 2489
TOTAL FOR ALL AUTHORS 22406
_________________ Frank Yaeger - DFSORT Development Team (IBM)
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
Posted: Fri Dec 19, 2003 11:35 am Post subject:
Frank,
I ran your Job with Syncsort and it did not provide me the results shown by you. I get the following results
Code:
BOOKS FOR INDIVIDUAL AUTHORS - 1 -
AUTHOR : ????
BOOK TITLE PRICE
--------------- ----------------
RDR 20
AVERAGE FOR THIS AUTHOR 20
TOTAL FOR THIS AUTHOR 20
BOOKS FOR INDIVIDUAL AUTHORS - 2 -
AUTHOR : FLMI ORG
BOOK TITLE PRICE
--------------- ----------------
INS 1234
AVERAGE FOR THIS AUTHOR 1234
TOTAL FOR THIS AUTHOR 1234
BOOKS FOR INDIVIDUAL AUTHORS - 3 -
AUTHOR : KATARIA
BOOK TITLE PRICE
--------------- ----------------
AMER ENG1 1790
AVERAGE FOR THIS AUTHOR 1790
TOTAL FOR THIS AUTHOR 1790
BOOKS FOR INDIVIDUAL AUTHORS - 4 -
AUTHOR : KATARIA
BOOK TITLE PRICE
--------------- ----------------
AMER ENG2 2790
AVERAGE FOR THIS AUTHOR 2790
TOTAL FOR THIS AUTHOR 2790
BOOKS FOR INDIVIDUAL AUTHORS - 5 -
AUTHOR : KATARIA
BOOK TITLE PRICE
--------------- ----------------
AMER ENG3 3790
AVERAGE FOR THIS AUTHOR 3790
TOTAL FOR THIS AUTHOR 3790
BOOKS FOR INDIVIDUAL AUTHORS - 6 -
AUTHOR : MEHRA
BOOK TITLE PRICE
--------------- ----------------
COMM SKILLS 6782
AVERAGE FOR THIS AUTHOR 6782
TOTAL FOR THIS AUTHOR 6782
BOOKS FOR INDIVIDUAL AUTHORS - 7 -
AUTHOR : US
BOOK TITLE PRICE
--------------- ----------------
LOMA1 1000
AVERAGE FOR THIS AUTHOR 1000
TOTAL FOR THIS AUTHOR 1000
BOOKS FOR INDIVIDUAL AUTHORS - 8 -
AUTHOR : US
BOOK TITLE PRICE
--------------- ----------------
LOMA2 2000
AVERAGE FOR THIS AUTHOR 2000
TOTAL FOR THIS AUTHOR 2000
BOOKS FOR INDIVIDUAL AUTHORS - 9 -
AUTHOR : US
BOOK TITLE PRICE
--------------- ----------------
LOMA3 3000
AVERAGE FOR THIS AUTHOR 3000
TOTAL FOR THIS AUTHOR 3000
BOOKS FOR INDIVIDUAL AUTHORS - 10 -
BOOK TITLE PRICE
--------------- ----------------
AVERAGE OF ALL AUTHORS 1318
TOTAL FOR ALL AUTHORS 22406
And here is Toolmsg output
Code:
SYT000I SYNCTOOL RELEASE 1.4C - COPYRIGHT 2002 SYNCSORT INC.
SYT001I INITIAL PROCESSING MODE IS "STOP"
SYT002I "TOOLIN" INTERFACE BEING USED
DISPLAY FROM(INPUT) LIST(SECTNRPT) -
TITLE('BOOKS FOR INDIVIDUAL AUTHORS') PAGE -
HEADER('BOOK TITLE') ON(1,15,CH) -
HEADER('PRICE') ON(60,5,ZD) BLANK -
BTITLE('AUTHOR : ') BREAK(51,10,CH) -
BAVERAGE('AVERAGE FOR THIS AUTHOR') -
BTOTAL('TOTAL FOR THIS AUTHOR') -
AVERAGE('AVERAGE OF ALL AUTHORS') -
TOTAL('TOTAL FOR ALL AUTHORS')
SYT020I SYNCSORT CALLED WITH IDENTIFIER "0001"
SYT045I DATA DISPLAYED ON DDNAME: SECTNRPT
SYT044I NO INVALID FIELDS WERE FOUND
SYT031I NUMBER OF RECORDS PROCESSED: 000000000000017
SYT030I OPERATION COMPLETED WITH RETURN CODE 0
SYT004I SYNCTOOL PROCESSING COMPLETED WITH RETURN CODE 0
and my DFSMSG output
Code:
PARMLIST :
OPTION RESINV=0,ARESINV=0,MSGDDN=DFSMSG,SORTIN=INPUT
INREC FIELDS=(00001,004,00051,0010,00001,0015,00060,0005)
SORT FIELDS=COPY
WER428I CALLER-PROVIDED IDENTIFIER IS "0001"
WER108I INPUT : RECFM=FB ; LRECL= 80; BLKSIZE= 80
WER257I INREC RECORD LENGTH = 34
WER055I INSERT 0, DELETE 9
WER449I SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE
WER054I RCD IN 9, OUT 0
WER169I RELEASE 1.1C BATCH 0405 TPF LEVEL 2B
Joined: 02 Dec 2002 Posts: 1618 Topics: 31 Location: San Jose
Posted: Fri Dec 19, 2003 1:33 pm Post subject:
Kolusu and Nancy,
As you know, DFSORT's ICETOOL is fully documented. With DFSORT's ICETOOL, the DISPLAY statement I show works exactly as it's documented and supposed to work, and gives the output I showed which is the output it's documented and supposed to give.
The output produced by the other product for this DISPLAY statement doesn't make any sense. The point of BREAK is to group duplicate records and it's not doing that.
Quote:
Do we need to override any parameters??
Check the documentation for SYNCTOOL - oh wait, there is none. Well, call their support line - oh wait, it isn't supported. (Sorry, I couldn't resist.)
If anyone would like some documents prepared by the DFSORT Team that discuss what we feel are the advantages of DFSORT/ICETOOL, and migration considerations, send me a note offline (yaeger@us.ibm.com). Please put "DFSORT" somewhere in your Subject line to catch my attention. _________________ Frank Yaeger - DFSORT Development Team (IBM)
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
Posted: Fri Dec 19, 2003 1:43 pm Post subject:
Frank,
Thanks for the clarification.I fully agree with you about the unpredicted results of using SYNCTOOL. On top of it is unsupported and there is no documentation at all. Now I can add DISPLAY feature in my non-working features. My non-working sort feature list is growing with every new ptf of DFSORT. I wish I had the capability to migrate to DFSORT.
I guess Nancy is also using SYNCSORT as her first post had similar report as mine. The latest release of syncsort had an alias for ICETOOL which makes the programmer believe that he is actually running DFSORT but in reality he is running syncsort.
Joined: 04 May 2003 Posts: 92 Topics: 4 Location: Paris, France
Posted: Fri Dec 19, 2003 2:13 pm Post subject:
Starting 6 Months ago, I had to upgrade our VM240 to Z/VM430.
Naturally all the products was impacted... and specifically Syncsort.
I phoned to the support to ask them to send me the new version and the documentation. Because i am curious I also asked the MVS documentation. With the nice package I received, it was a wonderfull paper which explained that Syncsort is the best in its category with nice graphics... not expensive... Editing the MVS doc, the last modification date was ... something around 1996.
For my part on VM, what I applied was only ptfs toleration.
No comment
Alain
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum