RPGⅢの対話型プログラムで値の受け渡しと妥当性チェック

RPGⅢと対話型プログラムの間で値の受渡しをしました。

表示装置ファイルのDDSで入出力フィールドを定義します。
HNBANGとHNBANG2の変数を定義します。

20150811_value1

RPGで初期値にセットします。
ここでは表示装置ファイルで定義した値を使用します。
すでに表示装置ファイルで変数が定義されていますので、RPG上で変数の「長さ」や「小数部桁数」の属性の定義は不要です。
なぜなら、RPGをコンパイルするときに、F仕様書で定義した表示装置ファイルを取り込みため、表示装置ファイルで定義した変数が利用できます。
表示装置ファイルで定義した変数をRPGで、同じ属性で定義してもエラーにはなりません(通常はしません)。
RPG上で複数回、同じ変数定義をしても問題ありません。
ただし、属性が異なる場合はエラーになります。

20150811_value2

CF(Command Function)とCA(Command Attention)の違い

CFではパネル上の入力データがプログラムへ渡されますが、CAではパネル上の入力データがプログラムへ渡されません。通常プログラムを終わらせる場合は、パネル上の入力データをプログラムへ渡す必要がありませんのでCAを使います。
CAの場合はプログラムへデータを渡さないので妥当性チェック(COMP,RANGE,VALUES)は無効です。
ただし、パネル上でなにも入力していないときは、CFのコマンドキーを押してもプログラムへデータを渡さず、妥当性チェックも無効になります。
また、「実行キー」はCFのコマンドキーと同じ動きになります。

20150811_value3

ためしに妥当性チェックを設定しました。
値を入力すると、パネルに変更があったとみなされて、CFのコマンドキーまたは実行キーを押した時には妥当性チェックをし、問題なければRPGに値を渡します。
値を入力していなければ、CFのコマンドキー、実行キーを押しても、CAのコマンドキーを押した時と同様に、妥当性チェックも無効で、RPGに値を渡すことはありません。
20150811_value4

20150811_value5

妥当性チェックに引っかかった場合は、25行目(エミュレーターではステータスバー)にメッセージが表示されます。
表示装置ファイル上で選択標識によってERRMSGキーワードで指定したときのメッセージも同じ場所に表示されます。
別のエラーメッセージを表示する方法として、選択標識によって固定情報を指定した位置に表示することもできます。

スポンサーリンク
memordmレクタングル(大)
memordmレクタングル(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
memordmレクタングル(大)