Return 来自 rpgle 程序的字符串

Return string from rpgle program

我想 return 来自 rpgle 程序的字符串。

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

任何人都可以给我代码片段。

程序对象必须通过参数 return 值。如果你想 return 一个带有 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();

到 return 来自程序的值

如果你真的想 return 从程序中获取一个值,你必须使用如下参数:

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);