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