|
Thank you Joe. This is the DDS for the subfile pag. I know the problem is in the initial build bec. I debugged at that point and the records are not correct. A R SFL1 SFL A* A 74 SFLNXTCHG A OPTION 1A B 10 3VALUES(' ' '2' '4' '5') A BAACCT R O 10 7REFFLD(ZZF01/BAACCT *LIBL/M A BAINVN R O 10 21REFFLD(ZZF01/BAINVN *LIBL/M A BABOL R O 10 38REFFLD(ZZF01/BABOL *LIBL/M A BAPRO R O 10 56REFFLD(ZZF01/BAPRO *LIBL/M A BASTAT R O 10 74REFFLD(ZZF01/BASTAT *LIBL/M A R SF1CTL SFLCTL(SFL1) A* A CF06 A SFLSIZ(0013) A SFLPAG(0012) A ROLLUP A OVERLAY A N32 SFLDSP A N31 SFLDSPCTL A 31 SFLCLR A 90 SFLEND(*MORE) A RRN1 4S 0H SFLRCDNBR A 9 7'ACCT#' A DSPATR(HI) A 9 21'INVOICE' A DSPATR(HI) A 9 37'BOL # ' A DSPATR(HI) A 4 2'POSITION TO . . . ACCT' A PACCT R B 4 30REFFLD(ZZLF01/BAACCT *LIBL/M A DSPATR(HI) A 9 2'OPT' Here is some code I switched back to one file. I was trying to read one and update another but it is the same basic code. c* Clear then build the initial subfile C exsr clrsf1 C exsr sflbld C* C dou cfkey = exit C write fkey1 C exfmt sf1ctl * Process position to information entered by the user, then clear C select C when (cfkey = enter) and (pacct <> *blanks) C *loval setll mllc1wa C exsr clrsf1 C exsr sflbld C clear pacct c when (cfkey = enter) C exsr prcsfl * C when (cfkey = rollup) and (not *in32) C exsr sflbld C when cfkey = cancel C leave C endsl C enddo C eval *inlr = *on C clrsf1 begsr * * Clear relative record numbers and subfile * C eval rrn1 = *zero C eval lstrrn = *zero C eval *in31 = *on C write sf1ctl C eval *in31 = *off C eval *in32 = *off C endsr C sflbld begsr * * Make RRN1 = to the last relative record number of the subfile * so that the load process will correctly add records to the bot * C eval rrn1 = lstrrn * * Load the subfile with one page of data or until end-of-file * C do sflpag C read zzlc1wa 90 C if *in90 C leave C endif C eval rrn1 = rrn1 + 1 C eval option = *blank C write sfl1 C enddo * If no records are loaded to subfile, don't display it * C if rrn1 = *zero C eval *in32 = *on C endif * C eval lstrrn = rrn1 * C endsr > There is a lot of information missing from your post, and perhaps a couple > of misconceptions. > > First, why do you think we need to know about the KLIST asbkey? It is not > used in your code, so it's irrelevant to the problem. > > Second, at the very minimum we would have to know the contents of sflpag, > as > well as the code that initially positions the mllc1wb file (if any). It > would probably be good to see the line of code that defines rrn1 to be the > subfile record number for sfl1, as well, but we can take your word for > that > one. > > Finally, it would be nice to know WHICH record was written to the subfile. > > Joe > > >> From: steema@xxxxxxxxxxxxx >> >> the file has records as such: >> >> 50079 1 1 60,239,717 1 > (...) >> 50079 1 1 60,239,723 7 >> .. >> >> C do sflpag >> C read mllc1wb 90 >> C if *in90 >> C leave >> C endif >> C eval rrn1 = rrn1 + 1 >> C eval option = *blank >> C write sfl1 >> C enddo >> >> Yet the subfile only loads the first record > > > -- > 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-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.