RPG

96. プロシージャーのパラメータ値を戻すには?

サービス・プログラムのプロシージャーで何らかのメソッド(プロシージャー)を呼び出して

実行するようにしたとする。

戻り値には TRUE または FALSE などによってプロシージャーの実行が成功か失敗かを

戻すようにしたい。

ただし成功のときには値も取得したものとする。

例えば

EVAL   RESULT = GETXLVALUE(ROW : COL : VALUE)

というプロシージャーの実行があるとする。

このプロシージャー GETXLVALUE は 行 ROW , 列 COL を指定して実行する。

RESULT「TRUE」が戻ったときには VALUE に取得した値が入っていて、

これを取得したいものとする。

しかしこのプロシージャーの記述ではそれはできない。

取得値のフィールド VALUE には値をパラメータとして値が戻らないからである。

値 を取得しようと希望するのであれば

EVAL   RESULT = GETXLVALUE(ROW : COL : %ADDR(VALUE))

として %ADDR によって VALUE のポインターを指定する。

サービス・プログラムのほうでもポインターを戻すようにする。

このようにすればプロシージャーのパラメータ値を戻すことができるようになる。