|
So, there are a few ways to do this.
Ways We Have Now
1. Procedures that return the class of return code.
2. Procedures that compare the return code with a class value.
Enhancements (?)
3. Range constants--A d spec keyword--range(v1 : v2).
4. C type macros. Of course then we could probably come up with a version
of RPG that looks exactly like Perl. Imagine the fun you could have getting
the spacing just right if you wanted to #define a C spec. New vistas for
truly obfuscated RPG. <vbg>
5. Pascal like sets with an in operator.
Actually, I kind of like the range constant. The tricky part would be
defining it so that you could get the flexibility you wanted at the
endpoints. Sounds like you need qualifiers.
> -----Original Message-----
> From: Gary Guthrie [mailto:GaryGuthrie@home.com]
> Sent: Thursday, March 09, 2000 1:39 PM
> To: RPG400-L@midrange.com
> Subject: Re: Indicator enhancements
>
>
>
>
> > bmorris@ca.ibm.com wrote:
> >
> > Gary, I understand what you're getting at now, but this only makes
> > sense when you have 2 (3? using *OFF? 4? *ON) categories of
> return code.
> >
>
> Actually, it makes sense when you multiple posibilities that
> fall into a
> single category. For instance, a negative number could
> indicate an error
> category -- any error. So for instance, your procedure might have the
> following as possible error return codes:
>
> -1 = Error condition 1
> -2 = Error condition 2
> -3 = Error condition 3
> -4 = Error condition 4
> -5 = Error condition 5
>
> > Anyway, what's the difference between what you are suggesting and
> > coding if "rc < 0"? Or, coding if "isError(rc)"?
> >
>
> Here's a couple of examples code snippets. You tell me which is more
> intuitive as you're just reading through code.
>
> Example A:
>
> ...
> C Eval RtnCode = MyProc( MyParm )
> C Select
> C When RtnCode > 0
> ...
> C When RtnCode = 0
> ...
> C When RtnCode < 0
> ...
> C EndSl
>
>
>
> Example B:
>
> ...
> C Eval RtnCode = MyProc( MyParm )
> C Select
> C When RtnCode = ExistingCust
> ...
> C When RtnCode = NewCust
> ...
> C When RtnCode = Error
> ...
> C EndSl
>
>
>
> > Come to think of it, maybe I don't understand what you're suggesting
> > now. Do you want to return specific return codes in an indicator
> > and have the values compare equal/not-equal to *NEGATIVE and
> > *POSITIVE, and also have them containing more specific values?
>
> They're not supposed to be indicator fields. It's actually numeric
> fields. Cut and paste woes!
>
> Maybe we need an IS construct.
>
> C When RtnCode Is ExistingCust
>
>
> Gary Guthrie
> REAL Solutions Technical Support
> Technical Editor, NEWS/400 magazine
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---
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.