从rpgle程序返回字符串

问题描述:

我想从rpgle程序返回字符串。从rpgle程序返回字符串

/free 
return 'this is simple text'; 
/end-free 

可以任何请给我这个代码片段。

程序对象必须通过参数返回值。如果要使用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);