2017-06-05 66 views

回答

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