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


  • Subject: Re: Additional RPGLE Enhancement Requests
  • From: cmassoglia@xxxxxxxxxxx (Charlie Massoglia)
  • Date: Mon, 14 Jul 1997 09:30:29 -0400

Dean:

Please tell me how I properly structure a screen edit routine where the user
has requested serial editing, i.e. stop and redisplay the screen as soon as
the first error is encountered.  I would code it as follows:

C          @@edit      betsr
 *
C          item        chain  itemmast         20....
c                      if     *in20
c                      goto   edit@@
c                      endif
 *
c          cust        chain  custmast         21....   
c                      if     *in21
c                      goto   edit@@
c                      endif
 *
c          cmhold      ifeq   'Y'
c                      eval   *in22 = *on
c                      goto   edit@@
c                      endif 
 ...
c          edit@@      endsr

How would you code this without using a GOTO, without testing an error flag
repeatedly, and without using a DO *FOREVER/LEAVE construct?

>>  >>13.  We have ITER and LEAVE to exit a do loop.  How do we exit a
>>  >>     subroutine without doing a GOTO.  What above an operation code
>>  >>     to GOTO *ENDSR just like ITER does a GOTO ENDO and LEAVE does
>>  >>     a GOTO ENDO+1.  I have no idea what to call the op code.  I
>>  >>     just know we desparately need it.  (This should be trivial -
>>  >>     please fix it.)
>>  >
>>  > How about LEAVESR ?
>>  
>>  
>>  Why not just put a TAG on the ENDSR and GOTO it?  Does the same thing,
>and,
>>  if you call it something like LEAVE/EXIT/QUIT it's fairly obvious what
>it's
>>  doing.
>>  
>>  All this just to avoid the use of a GOTO....  *sigh*
>
>RRRRRRrrrrrrrrrrr!  How about just structuring your logic so that it FALLS to
>the ENDSR?  Why should subroutines be any different from mainline logic?  A
>LEAVESR command would be USELESS if the code were structured properly in the
>first place.  I've found places for using both ITER and LEAVE, especially
>when converting S/36 code.  I HAVE YET to find a place in my heart for a GOTO
>:-).
>


Charlie Massoglia, Massoglia Technical Consulting, Inc.
PO Box 1065, Okemos, MI 48854, USA
517-676-9700  Fax: 517-676-1006  EMAIL: cmassoglia@voyager.net


* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* This is the Midrange System Mailing List!  To submit a new message,   *
* send your mail to "MIDRANGE-L@midrange.com".  To unsubscribe from     *
* this list send email to MAJORDOMO@midrange.com and specify            *
* 'unsubscribe MIDRANGE-L' in the body of your message.  Questions      *
* should be directed to the list owner / operator: david@midrange.com   *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

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.