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



Hi Alan,

The FOR loop is less source code and one less I/O, the one that gives you the NOT %FOUND; however, given that subfile processing is for an interactive program, no one would notice any performance difference. I personally prefer the shorter source code - makes the program easier to read.

*Peter Dow* /
Dow Software Services, Inc.
909 793-9050
pdow@xxxxxxxxxxxxxxx <mailto:pdow@xxxxxxxxxxxxxxx> /

Alan Shore wrote:
Hi Booth
Is there any advantage on using a for loop over a do loop, or is it just
personal preference?
If there is an advantage, I am always willing to learn new things.



Alan Shore

NBTY, Inc
(631) 244-2000 ext. 5019
AShore@xxxxxxxx


rpg400-l-bounces@xxxxxxxxxxxx wrote on 10/04/2006 12:38:40 PM:

I like a for loop:

C             for    Subfilerrn = 1 to SflSiz
C  Subfilerrn chain  Subfile
C             if     Option = 'X'
C             exsr   ProcessData
C             endif
C             endfor

Where SflSize equals the size of the subfile (you probably have that as
a known number already).



Alan Shore wrote:
Sorry Phil I dont know what happened there. Please see revised code
c                 eval        Subfilerrn = 0
c                 dou         not %found(Workstn)
c                 eval        Subfilerrn = Subfilerrn + 1
c     Subfilern   chain       Subfile
c                 if          %found(Workstn)
c                 if          Option = 'X'
C                 exsr  processdata
C                 endif
c                 enddo

rpg400-l-bounces@xxxxxxxxxxxx wrote on 10/04/2006 12:30:35 PM:

Hi Phil

the following code should show you what is needed.

c                       eval        Subfilerrn = 0
c                       dou         not %found(Workstn)
c     Subfilern   chain       Subfile
c                       if          %found(Workstn)
c                       if          Option = 'X'
C           exsr  processdata
C           endif
c           enddo
Where Workstn is your worstation file name
subfile     is the subfile record
Subfilerrn is the rrn associated with that subfile (or any other
counter
Alan Shore

NBTY, Inc
(631) 244-2000 ext. 5019
AShore@xxxxxxxx
rpg400-l-bounces@xxxxxxxxxxxx wrote on 10/04/2006 11:59:13 AM:

Oops it worked now! But tell me anyways if you have a moment how you
do
this read. I have only done subfiles that displayed rows of data and
accepted the 'X' (or 2/4/5) next to the record the user could update.
Then I display another format w/ this record for them to change.  So
I
DID do a READC looking for this 'X'. thus, this way of changing data
on
the rows directly is new to me.

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Booth Martin
Sent: Wednesday, October 04, 2006 11:53 AM
To: RPG programming on the AS400 / iSeries
Subject: Re: Subfile problem

Thats why I stopped using READC.  Just too many headaches.  Read the
whole subfile.  The performance hit is minimal, if even noticeable.

Phil Kestenbaum wrote:
The problem I am having is to reset the subfile. IOW, I have a
routine
that checks each line via a READC, that is doing a  dow       not
%eof
But it is NOT going through and checking upon hitting enter, the
indicators are controlling. Because, EOF has been hit. I am not sure
how
to reset the subfile.

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of
Michael_Schutte@xxxxxxxxxxxx
Sent: Wednesday, September 27, 2006 4:59 PM
To: RPG programming on the AS400 / iSeries
Subject: Re: Subfile problem

If I am understanding you correctly,

You should only have to reset the indicator for the line once the
error
has
been corrected.  On your "else", you need to update the subfile
record
there too because you are changing the value of *In60.


Michael Schutte

Dig in! Bob Evans New Knife & Fork Sandwiches - This much homestyle
goodness demands a Knife & Fork!


rpg400-l-bounces@xxxxxxxxxxxx wrote on 09/27/2006 04:50:50 PM:

HI, I have a subfile program that when there is an error, on say
the
third line, on the first pass, the cursor is being put on the third
line
correctly, but subsequently, the cursor will be placed on the first
line. Let's say if I correct the third line but make an error on
first,
then correct the first and re-error on third, it then positions on
FIRST. I appear to be missing code that would correctly align the
cursor
to the error line, or perhaps I need to clear the subfile on each
ENTER?
The code is:



C     prolin       begsr

C                   readc     sfr1
*
  *

C                   dow       not %eof

 *

C                   if        s6sqty =  0

c

C                   eval      *in60 = *on

C                   eval      *in59 = *on



C                   eval      *in74 = *on

C                   update    sfr1

c                   else

C                   eval      *in60 = *off

c                   endif

C                   eval      *in74 = *off

c*

c                   readc     sfr1



C                   enddo

C                  endsr



Ind. 60 is to position the cursor:



A  60                                  DSPATR(PC)


This message contains information proprietary to our company. It is
intended to be read only by the individual or entity named above or
their designee.
Any distribution of this message or the information contained
herein
without written permission from our company is strictly prohibited.
If the reader of this message is not the intended recipient or an
agent responsible for delivering it to the intended recipient, you
are hereby notified that you have received this document in error
and that any review, dissemination, distribution, or copying of
this
message is strictly prohibited. If you have received this
communication in error, please notify us immediately by e-mail, and
delete the original message.


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


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

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

Replies:

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.