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



What's the value of sflpag? The loop control variable, not the DSPF
keyword.

> -------- Original Message --------
> Subject: RE: Why does this loop only pick up the first rec of a group
> From: steema@xxxxxxxxxxxxx
> Date: Wed, December 28, 2005 10:48 am
> To: "RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx>
> 
> 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.
> >
> >
> 
> -- 
> 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.