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



Justin,

If the example, which Vern has kindly copied for us below, were in a service program, you could export just the FORMAT procedure and keep the others internal to the service program.

--
*Peter Dow* /
Dow Software Services, Inc.
909 793-9050
petercdow@xxxxxxxxx <mailto:petercdow@xxxxxxxxx>
pdow@xxxxxxxxxxxxxx <mailto:pdow@xxxxxxxxxxxxxx> /

On 10/8/2019 10:32 AM, Vernon Hamberg wrote:
No need to presume - look at the article - it's pretty simple and elegant, as Barbara usually does things.


   *Overloaded prototypes*

The OVERLOAD keyword defines a list of other prototypes that can be called using the name of the prototype with the OVERLOAD keyword. When the prototype with the OVERLOAD keyword is used in a call operation, the compiler uses the parameters specified for the call to determine which of the candidate prototypes listed in the OVERLOAD keyword to call.

In the following example, FORMAT is defined with the OVERLOAD keyword. For the first call to FORMAT, the parameter has type Date, so FORMAT_DATE is called. For the second call to FORMAT, the parameter has type Time, so FORMAT_TIME is called. For the second call to FORMAT, the parameters have type Character, so FORMAT_MESSAGE is called.

   DCL-PR format_date VARCHAR(100);
       dateParm DATE(*ISO) CONST;
   END-PR;
   DCL-PR format_time VARCHAR(100);
       timeParm TIME(*ISO) CONST;
   END-PR;
   DCL-PR format_message VARCHAR(100);
       msgid CHAR(7) CONST;
       replacement_text VARCHAR(100) CONST OPTIONS(*NOPASS);
   END-PR;
   DCL-PR format VARCHAR(100) OVERLOAD(format_time : format_date :
   format_message);
   DCL-S result varchar(50);

   result = format(%date());              // 1
   result = format(%time());              // 2
   result = format('MSG0100' : filename); // 3



On 10/8/2019 12:11 PM, Justin Taylor wrote:
OVERLOAD!!!

Presumably, the overload will be a prototype only without a procedure.  How will that work with exported procedures?

I assume you'll still be able to call the real procedures directly.  That would be less than ideal, but understandable.




-----Original Message-----
From: Jon Paris [mailto:jon.paris@xxxxxxxxxxxxxx]
Sent: Tuesday, October 08, 2019 11:46 AM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Latest RPG Updates

I see Barbara has posted this elsewhere but I know of many on this list who have been waiting for procedure overloading. Yay!  It is here ands I love it!

Also (although not quite as requested) we now have "XML-FROM" in the form of DATA-GEN which is kind of Open Access meets DATA-INTO (but backwards).  You'll have to wait for meaningful examples of this one but I'll be putting out an article on procedure overloading in a couple fo weeks.

Link to the basic details is here: http://ibm.biz/fall_2019_rpg_enhancements <http://ibm.biz/fall_2019_rpg_enhancements>


Jon Paris





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

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.