×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




In short, it only "worked" originally because of the DOUNE loop. Each pass through the DOU loop kicks off a new SELECT group. In the "improved" code, there is no outer loop (in which the SELECT is embedded).



        * Jerry C. Adams
*IBM System i Programmer/Analyst
B&W Wholesale Distributors, Inc.* *
voice
        615.995.7024
fax
        615.995.1201
email
        jerry@xxxxxxxxxxxxxxx <mailto:jerry@xxxxxxxxxxxxxxx>



Michael_Schutte@xxxxxxxxxxxx wrote:

A select statement acts as

If
ElseIF
ElseIf
... etc
EndIf

It will only perform the first condition is equals to TRUE.


Try our New Country Benedicts -- Breakfast with a Bob Evans twist!



THarteau@felkerbr others.com Sent by: To rpg400-l-bounces@ RPG programming on the AS400 / midrange.com iSeries <rpg400-l@xxxxxxxxxxxx> cc 08/14/2006 12:17 Subject PM SELECT & WHENEQ Question Please respond to RPG programming on the AS400 / iSeries <rpg400-l@midrang e.com>





Hi,
     I am rewriting an old program. It has the following chunk of code:

C                 MOVE        '30'          K@FAC
C     W@GOOD      DOUNE *BLANK
C                 SELECT
C     K@FAC       WHENEQ      '30'
C                 EXSR        $100
C     W@GOOD      IFEQ        *BLANK
C                 MOVE        '10'          K@FAC
C                 ENDIF
C     K@FAC WHENEQ      '10'
C                 EXSR        $100
C     W@GOOD      IFEQ        *BLANK
C                 MOVE        '20'          K@FAC
C                 ENDIF
C     K@FAC       WHENEQ      '20'
C                 EXSR        $100
C     W@GOOD      IFEQ         *BLANK
C                 MOVE        'NO '         W@GOOD
C                 ENDIF
C                 ENDSL
C                 ENDDO

Basically, it is trying to find the correct bill of material facility. It
could be in 30, 10 or 20.  I changed it a bit for readability.

C                 MOVE        *BLANK      W@GOOD
C                 MOVE        '30'        K@FAC
C                 SELECT
C*
C     K@FAC       WHENEQ      '30'
C                 EXSR        $100
C                 IF          W@GOOD = *BLANK
C                 MOVE        '10'        K@FAC
C                 ENDIF
C     K@FAC WHENEQ      '10'
C                 EXSR        $100
C                 IF          W@GOOD = *BLANK
C                 MOVE        '20'        K@FAC
C                 ENDIF
C     K@FAC WHENEQ      '20'
C                 EXSR        $100
C                 IF          W@GOOD = *BLANK
C                 MOVE        'NO '       W@GOOD
C                 ENDIF
C*
C                 ENDSL
C*

When I put it in debug, it does the first WHEN, changes K@FAC to '10', goes
to the next WHENEQ, then goes to the ENDSL.  Can anyone tell me why it no
longer works?

<===================================================>

Terri Harteau
Programmer/Analyst
Felker Brothers Corporation
****************
"The danger in life is not that we aim too high and miss.
The problem is that we aim too low and hit the mark."  -- Michelangelo
****************




--
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-Ups:
Replies:

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

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