我想从rpgle程序返回字符串。
/free
return 'this is simple text';
/end-free请给我这方面的代码片段。
发布于 2017-06-05 12:51:30
程序对象必须通过参数返回值。如果要返回带有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);https://stackoverflow.com/questions/44364319
复制相似问题