从rpgle程序返回字符串

时间:2017-06-05 07:59:33

标签: ibm-midrange rpgle

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

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

任何请给我代码片段。

1 个答案:

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