|
I agree, and I did point that out in my first post. CalcTax was just supposed to be an example of how proper naming can make it obvious that a param is used to return a value. Probably not the best example, since CalcTax is an obvious candidate for a procedure that returns a value. Charles Wilt iSeries Systems Administrator / Developer Mitsubishi Electric Automotive America ph: 513-573-4343 fax: 513-398-1121 > -----Original Message----- > From: rpg400-l-bounces@xxxxxxxxxxxx > [mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of rob@xxxxxxxxx > Sent: Thursday, April 21, 2005 3:53 PM > To: RPG programming on the AS400 / iSeries > Subject: RE: Parameter Procedure return value in the parm list > > > What you really should be doing is: > TaxAmt = CalcTax(OrderAmt); > and return a value from your subprocedure > D CalcTax PR 15p 2 > D OrdAmtParm 15p 2 const > > P CalcTax b > D CalcTax PI 15p 2 > D OrdAmtParm 15p 2 const > > D WorkVar s 15p 2 > > /free > WorkVar=OrdAmtParm * ...; // your calculation here > return WorkVar; > /end-free > P CalcTax E > > Rob Berendt > -- > Group Dekko Services, LLC > Dept 01.073 > PO Box 2000 > Dock 108 > 6928N 400E > Kendallville, IN 46755 > http://www.dekko.com > > > > > > rob@xxxxxxxxx > Sent by: rpg400-l-bounces@xxxxxxxxxxxx > 04/21/2005 02:25 PM > Please respond to > RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> > > > To > RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> > cc > > Subject > RE: Parameter Procedure return value in the parm list > > > > > > > If you are using const, you could do stuff like > CalcTax( %dec(orderAmt) : taxAmt ); > But your passing off processor efficiency for documentation. > Not a good > plan just for this type of documentation. > > Rob Berendt > -- > Group Dekko Services, LLC > Dept 01.073 > PO Box 2000 > Dock 108 > 6928N 400E > Kendallville, IN 46755 > http://www.dekko.com > > > > > > "Kurt Anderson" <kjanderson@xxxxxxxxxxxxx> > Sent by: rpg400-l-bounces@xxxxxxxxxxxx > 04/21/2005 01:59 PM > Please respond to > RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> > > > To > "RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx> > cc > > Subject > RE: Parameter Procedure return value in the parm list > > > > > > > Charles, > > I realize that the prototype tells you all you need to know, > but ideally > I'd like the code to tell me that. Such as, in your example... > CalcTax( orderAmt : taxAmt ); > ... The amount being changed here is not explicit. As a programmer I > now need to page up or whatever to find the prototype to see which > field, if any, is being changed. This is what I'd like to get around > (w/o writing comments). > > >There is no way to show that a parm will always be changed > or that the > parm is only used for output instead > >of input/output. > Then it looks like what I'm looking for can't be done. > > >This is one reason I try to make all params input only and > use a return > value for the results of my > >procedures. > I hear ya. I've just been comparing, mentally, how a subroutine that > exists on our system now would best appear as a procedure. > > Thanks for your input, > > Kurt Anderson > Application Developer > Highsmith Inc > > -----Original Message----- > From: rpg400-l-bounces@xxxxxxxxxxxx > [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Wilt, Charles > Sent: Thursday, April 21, 2005 1:44 PM > To: RPG programming on the AS400 / iSeries > Subject: RE: Parameter Procedure return value in the parm list > > Kurt, > > The CONST and VALUE keywords tell you a parm is input-only. Thus, the > lack of either of those tells you that the parm could be changed. > > There is no way to show that a parm will always be changed or that the > parm is only used for output instead of input/output. > > This is one reason I try to make all params input only and > use a return > value for the results of my procedures. > > If you can't use a return value, make sure that the appropriate names > are chosen for the procedure and its parms so that it is obvious that > values are returned in the parms. For instance, the names chosen in > your example are very poor IMHO. But with names like so: > > d CalcTax pr > d orderAmt 9p 2 value > d taxAmt 9p 2 > > It is obvious that the taxAmt parm is used to return a value. > > HTH, > > Charles Wilt > iSeries Systems Administrator / Developer Mitsubishi Electric > Automotive > America > ph: 513-573-4343 > fax: 513-398-1121 > > > > -----Original Message----- > > From: rpg400-l-bounces@xxxxxxxxxxxx > > [mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of Kurt Anderson > > Sent: Thursday, April 21, 2005 2:24 PM > > To: RPG programming on the AS400 / iSeries > > Subject: Parameter Procedure return value in the parm list > > > > > > Hi, > > > > I'm wondering if there's a way to code a prototyped call > and be able > > to signify that a parameter will have a value returned to it. > > For example... > > > > (all code is typed in, not copy/pasted, so columns will be off) > > > > D dtrAmount PR > > D order 7 0 const > > D amt1 9P 2 > > D amt2 9P 2 > > > > If I have the following statement buried in the code, I can write a > > comment to say that amt1 and amt2 will have values > returned, but I'd > > rather have the code itself tell me. > > > > dtrAmount( order : amt1 : amt2 ) > > > > I'm wondering if there's something like the below statement > that makes > > > the parameters that will have values returned to them stand out. > > > > dtrAmount( order : &amt1 : &amt2 ) > > > > > > Thanks, > > > > Kurt Anderson > > Application Developer > > Highsmith Inc. > > W5527 State Road 106, P.O. Box 800 > > Fort Atkinson, WI 53538-0800 > > TEL (920) 563-9571 FAX (920) 563-7395 EMAIL > kjanderson@xxxxxxxxxxxxx > > > > -- > > 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 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.