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