|
Carl, This has been explained here quite nicely by Joep. You have the logic fine but you are not looking for file indicator 01 and 02 (in your example) with which you can monitor the writing of one line instead of 2. i.e. only print when you are done reading both the files. Thanks, Sudha Sudha Ramanujan SunGard Futures Systems sramanujan@xxxxxxxxxxxxxxxxxx (312) 577 6179 (312) 577 6101 - Fax -----Original Message----- From: Joep Beckeringh [mailto:joep@xxxxxxxxxxxxxxxxxxx] Sent: Friday, April 08, 2005 8:09 AM To: RPG programming on the AS400 / iSeries Subject: Re: primary and secondary files, match fields, summarizing/printing s ingle line per key Carl, Like Mike Barton suggested, you should rename one set of fields to match the field names of the other file. The way it is coded a L1 control break when the value of PLOCSZ or PLOCVT or PLOITM or IVSCSZ or IVSCVT or IVSITM changes. So a record in PLNMJ1 triggers L1 because it changes the PLOxxx fields and the equivalent record in INVSUM triggers another L1 because it changes the IVSxxx fields. Other remarks: Mike also noted that you should probably have a control break on xxxYER as well. In the (probably highly unlikely) case that you have consecutive records with all match fields except xxxYER alike, you would not get a level break. Your program has a problem when you have a record in one file without a match in the other file. In that case you use information from the last record in the previous group. A better way would be: - At L1 (detail time): Initialize print fields - At 01 (record from PLNMJ1): move information from PLNMJ1 to print fields - At 02 (record from INVSUM): move information from INVSUM to print fields - At L1 (total time): print If you are only interested in L1 you might just as well use L1 for all your match fields. Joep Beckeringh Mañoso, Carl wrote: > Mabuhay RPG gurus! > > A colleague has this problem, which I cannot solve, involving primary and > secondary files and match fields. Here are the relevant code fragments and a > sample output. A record pertaining to a particular key doesn't necessarily > have to be in both files. > > SAMPLE PROGRAM > ============== > IPLNMJ1 01 > I PLOYER M6 > I PLOMKTL3M5 > I PLOIGRL2M4 > I PLOCSZL1M3 > I PLOCVTL1M2 > I PLOITML1M1 > IINVSUM 02 > I IVSYER M6 > I IVSMKTL3M5 > I IVSIGRL2M4 > I IVSCSZL1M3 > I IVSCVTL1M2 > I IVSITML1M1 > ---------- > MAIN > ---------- > . > . > . > CL1 EXSR PRTDTL > . > . > > > SAMPLE OUTPUT > ============= > Cur Mo. Total > Item_ Size__ Variety___ Market_PO_Description____ ___PO__ Shipmts > CONC FOR DC OR DIRECT > *1* 01160 12-46 PO EUROPE MARKET 1,000 > > *1* 01160 12-46 PO EUROPE MARKET 204 > > *2* 01254 6-10 J- EUROPE MARKET 1,000 > *2* 01254 6-10 J- EUROPE MARKET 272 > > Sub-total 2,000 476 > > > QUESTION > ======== > *INL1 controls the printing of a detail line. In the sample output above, > lines indicated by *1* should supposedly appear in one line, lines indicated > by *2* also in one line. However, as you can see, *INL1 is triggered twice, > one for each file (primary and secondary), so that they were printed on two > separate lines. Printing on every other setting of *INL1 also doesn't work > because the records pertaining to a particular key need not appear in both > files. > > Does anybody here knows of a technique that will print the summary of a > record with details coming from two separate files in a single line? We are > using RPG/400 on V4R5M0 (by order of our BDFL). > > Thanks in advance. > > -- > Carl Mañoso > "It is not real work unless you would rather be doing something else." > [J.M.BARRIE] > > -- This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.