9.10.対話型画面でのメッセージの扱い |
RPGの対話型画面で、皆さんはメッセージをどのように出していますか。例えば、「ここは入力必須です。」といったエラーメッセージや、「コード4114を登録しました。」といった通知メッセージの類です。
さて、ではどうやってメッセージを出しましょうか。以下のようなことがしたいのです。
いろいろ手段はあると思いますが、私は、
取り出しプログラムが重要です。RPGでは、メッセージ検索サブルーチン (SUBR23R3)を特殊サブルーチンとして準備していますが、これはあまり使えません。メッセージの合成が出来ないのです。そこで、以下のプログラムを汎用の外部サブルーチンとして、作成します。
例えば、MSGF USERMSGにメッセージID MNG0001で 「コード &1 を登録しました。」を登録したとします。データ入力プログラムは、データの書き出し後、メッセージ取り出し外サブに、MNG0001と1010をパラメータで渡します。外サブは、MNG0001と1010を元に、RTVMSGをして、合成されたメッセージ、「コード 1010 を登録しました。」を取り出し、再び、パラメータとして返します。データ入力プログラムはこのメッセージを画面に表示して(MNG0001というメッセージIDも表示するとデバッグに役立つ)、オペレータに登録完了を知らせる。 また、CLPでは、MSGF USERMSGにMSG0001「&1の処理準備中です。」MSG0002「&1の処理中です...」MSG0003「&1の処理完了しました。」を登録して、特別に作成したMSGQに、処理単位に送ってやると、そのMSGQをDSPMSGすれば、状況確認に利用できます。例えば、大きな更新処理で、いくつもの処理を含む場合に有効です。 このように、メッセージIDを利用すれば、メンテナンスも楽だし、リストも出来るし、CLPでも利用できます。便利ですよ! |
You are at K's tips-n-kicks of AS/400
|
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||