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



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


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.