在此例中,宏调用一个程序并传递多个参数。程序的源代码在宏之后,是用 RPG 和 CL 编写的。被调用的程序 接收两个整数参数。它将第一个参数(输入参数)复制到第二个参数(输出参数)。
宏:
%define ilepgm = "/QSYS.LIB/NETDATADEV.LIB/TDCCLI01.PGM"
%define out1 = "0"
%FUNCTION(DTW_DIRECTCALL) dcFunction(IN INT inp1,
OUT INT outp2)
{ %EXEC { $(ilepgm) %} %}
%HTML(REPORT){
@dcFunction("123", out1)
The value of out1 is: "$(out1)"
%}
ILE RPG 程序:
DINP1 S 10I00 DOUTP2 S 10I00 C* C *ENTRY PLIST C PARM INP1 C PARM OUTP2 C* C Z-ADD INP1 OUTP2 C* C SETON LR
CL 程序:
PGM PARM(&INP1; &OUTP2;)
DCL VAR(&INP1;) TYPE(*CHAR) LEN(4)
DCL VAR(&OUTP2;) TYPE(*CHAR) LEN(4)
CHGVAR VAR(&OUTP2;) VALUE(&INP1;)
ENDPGM