从rpgle程序返回字符串
答
程序对象必须通过参数返回值。如果要使用RETURN
操作码返回值,则需要使用子过程。子程序可以包含在程序对象或服务程序对象中。如果你想分享多个程序的子程序,你应该使用一个服务程序。这是你将如何定义一个服务程序中使用的子过程:
dcl-proc MyProcedure Export;
dcl-pi *n Varchar(25);
end-pi;
return 'this is simple text';
end-proc;
如果你只是定义程序中的子过程,你需要省略Export
关键字。
要调用的子过程,你再使用这样的事情:
dcl-s string Varchar(25);
string = MyProcedure();
从程序
返回一个值,如果你真的想从你所要做的程序返回一个值它有这样的参数:
ctl-opt DftActGrp(*No) ActGrp(*Caller)
Main(MyProgram);
dcl-proc MyProgram;
dcl-pi *n;
string Varchar(25);
end-pi;
string = 'this is a simple string';
return;
end-proc;
要调用你会使用类似这样的程序:
dcl-s string Varchar(25);
dcl-pr MyProgram ExtPgm('MYPROGRAM');
str Varchar(25);
end-pr;
MyProgram(string);