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



Hans,

How would we pass a parameter to a proc written in RPG IV like we
can with some of the programs we call.
For example, if I want to allow a parm to be anything, numeric,
character, date, etc.  And then tell the proc on a subsequent parm
what that value is, do I code the parm as a pointer or what?

.....D myFunct        PI
     D  anytype                     *
     D   nLen                     10I 0
     D   nDec                     10I 0
     D   type                     10I 0

Could I call myFunct and pass a characte field, or a numeric field
or a data field?  If so, could I avoid using %ADDR to do it, or do I
need to wrap the variable in %ADDR?

My guess is that I would need to do pass %ADDR(CustNo), but is that
allowed when I may want to change the data in the called proc? 
(i.e, I don't want to use CONST).

Thanks!

-Bob


> 
> DeLong, Eric wrote:
> 
> > Hi everybody,
> > 
> > We're trying to integrate a vendor supplied service program,
> written in C,
> > into our RPGIV applications.  We've attempted to translate the .H
> include
> > into RPG prototypes, and have encountered a usage problem.
> > 
> > One of the functions is passing tax_amt and tax_rate as 
> > 
> > double *pTransTotalTax,
> > double *pTransCombRate,
> > 
> > which we've coded as
> > 
> > D  pTransExtdAmt                 8f         
> > D  pTransTotalTx                 8f         
> > 
> > So far so good.  Now the problem.  The use of this api states:
> > 
> > "Total tax amount for the transaction. This parameter is used
when
> > processing special (tax-only debit and tax-only credit)
> transactions. This
> > parameter is ignored if NULL is passed. Passing 0 results in zero
> tax being
> > calculated."
> > 
> > Entended amount is fine, since we will have a calculated value
for
> that
> > every time we call the api.  But for the call to work properly,
we
> must send
> > the other parm as NULL.  How in the he!! am I supposed to do
that?
>  Does C
> > consider a parm to be null if the address is null? 
> > 
> > Can anyone give me some insight? 
> > 
> > Thanks in advance....
> > 
> 
> You could define the parameters as:
> 
> D  pTransExtdAmt                  *   VALUE
> D  pTransTotalTx                  *   VALUE
> 
> and either pass *NULL or %ADDR(TAXVALUE) as the parameter.
> 
> Cheers! Hans
> 
> 
> _______________________________________________
> 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-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.