× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



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 thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 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.