|
Joel Stone wrote using HTML:
>I want to create my own built-in functions,
>to be used in any ILE program.
AMEN!
>I think I want a combination of sub-procedures,
>binding directories, service programs, activation
>groups, etc.
>
>I cant seem to find an article that puts them
>all together in a VERY simple example.
>Does anyone know of such an article in
>Midrange Computing or News/400?
There have been scads of articles; I'm not certain there exists one very
simple example of all the elements you mentioned. There's a lot of
complexity there! Aside from the oft mentioned Redbook (Who knew you could
do that with RPG?) there may not be a single repository of that information.
It seems that the typical example of a user defined function is the call to
QCMDEXEC. Being me, I will avoid that!:
* QRPGLESRC mbr(DSPLY)
H debug dftactgrp(*no) actgrp('QILE') option(*srcstmt: *nodebugio)
* dbgview(*list)
* Display a message to the user
D rc s 10u 0
D ShowMsg pr 10u 0
D MsgText 50 const
D MsgQueue 10 const
C eval rc = ShowMsg('Test': 'BUCK')
C eval *inLR = *On
P ShowMsg b Export
D ShowMsg pi 10u 0
D MsgText 50 const
D MsgQueue 10 const
D rc s 10u 0
C MsgText Dsply MsgQueue 99
C If *In99 = *On
C Eval rc = -1
C Else
C Eval rc = 0
C EndIf
C Return rc
P ShowMsg e
This compiles with option 14 off of PDM, so it qualifies as a simple example
- no special binding, etc. but it shows the procedure prototype (the PR),
the actual procedure code (flanked by the P specs, including the PI). It
also shows local variable usage (rc within the procedure) and how to invoke
the function (eval rc=ShowMsg...)
The only special thing I do is to use the Windows "copy" function to copy
the "dbgview(*list)" before I exit SEU. When I compile, I put 14 in the
option field, newline to the command line and "paste" it there before
pressing Enter. That way I don't have to prompt every compile and I can
compile it on any machine without having to modify CRTBNDRPG.
As I said, this is a simple enough example. If you want to have some fun
with it, we can turn this into a mini-tutorial on how to learn ILE. (This
example is more like "How to learn RPG IV.")
Buck Calabro
Aptis; Albany, NY
"We are what we repeatedly do.
Excellence, then, is not an act, but a habit." --Aristotle
Billing Concepts Corp., a NASDAQ Listed Company, Symbol: BILL
+---
| 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-2025 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.