($title_img_alt)

こちらからの投稿は、先頭に表示されているコメントへの返信になります。
ポップアップ表示のサービスプログラムでポインターを利用 AS400 初心者 さん [ 4月5日(火) 11時21分 ]
いつもお世話になっております。

リストからアイテムを選択させる際のポップアップ表示をよく使用しているの
ですが、
このポップアップ表示のプログラムをプロシージャ化して、
かつ、サービスプログラム化したいと考えています。

そこで質問なのですが、普段はサービスプログラムのプロシージャーを呼ぶ時は
RET = TESTPROC(P1:P2);

のように記載しています。
これでは1つの値を戻すことは出来ますが
複数の値をコール側に戻したい場合に出来ません。

そこでポインターを使用すれば出来るのではと思うのですが
そのようなポインターの使用方法は可能でしょうか?


イメージとしては、
RET = プロシージャー名(引数1:引数2);

上記のようなイメージでかつ、引数1と引数2に指定した戻り値が返ってきて
ほしいと思っています。

----------------------------------------
コール側
RET = プロシージャ名(引数1:引数2)

プロシージャ側
ポップアップでアイテムをリスト表示(サブファイル)
選択されたアイテムのコード(複数項目)をコール側に返す
RE:ポップアップ表示のサービスプログラムでポインターを利用 IKD さん [ 4月5日(火) 16時36分 ]
全くその通りで大正解○です。
RET = プロシージャー名(引数1:引数2);

で引数1, 引数2 をポインター渡しにするとプロシージャー内で
引数から定義される変数 ( BASED(PTR) )を更新して戻ると
親の呼出し側の変数の値も更新されます。

発想しておられることは大正解です。
ただしプロシージャー内でも 入力パラメータから BASED によって
フィールドを定義して、そのフィールドを更新するようにしないと
MCH3105のエラーとなります。

ここまで理解しておられますので、そのようなミスはされないと思いますが。
RE:ポップアップ表示のサービスプログラムでポインターを利用 AS400 初心者 さん [ 4月6日(水) 10時3分 ]
いつもご教示いただきありがとうございます。

色々なコンパイルエラーや実行エラーに悩まされましたが
考え方としては正解で、実行可能というアドバイスを頂きましたので
必ず出来ると信じて色々試行錯誤し続けたところ、無事に作成完了致しました!

これで毎回ポップアップのソースを書く必要がなくなりそうです。

いつも丁寧にアドバイス頂きありがとうございます。

お名前

パスワード

メールアドレス

タイトル

ホームページ

アドレス

項目