我想从rpgle程序中返回字符串。
/free
return 'this is simple text';
/end-free
任何请给我代码片段。
答案 0 :(得分:6)
程序对象必须通过参数返回值。如果要使用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);