画面・帳票サポートシステム XMAP3 開発ガイド


8.2.6 画面確定のデータ入力単位

入力は,基本的に画面単位です。ただしオプションとして,フィールド単位およびイベント単位の入力が選べます。ただし,入力単位がイベント単位またはフィールド単位のときは,オブジェクトごとにAPとの通信が発生します。そのためC/Sシステム環境では,画面単位の場合と同じようなスムーズなオブジェクト間の遷移はできません。応答性能を要求するようなシステムでは注意が必要です。

なお,OLTPサーバ構成で使用する場合には,画面単位を指定してください。画面単位以外を指定した場合,APを継続問い合わせ応答型のプログラムとして作成する必要があります。継続問い合わせ応答型のプログラムは複雑になりやすく,お勧めできません。

[図データ]

〈この項の構成〉

(1) 画面単位

(a) 画面確定のタイミング

画面属性ダイアログの入力単位で「画面」を指定すると,APから画面を表示するときに,入出力の制限(不活性)を指定しているオブジェクト以外は入力・選択できる状態で表示されます。これらのオブジェクトを選択したり,データを入力したりしたあと,画面確定を設定しているメニューバー,プッシュボタンまたは画面確定キーを押すと,APに制御が渡ります。なお,オブジェクトに「自動送信」を設定すると,そのオブジェクトからフォーカス・カーソルが離脱するタイミングで「送信」の画面確定が仮定されます。

(2) フィールド単位

(a) 画面確定のタイミング

画面属性ダイアログの入力単位で「フィールド」を指定すると,APから画面を表示するときに,APで設定されているフォーカス(カーソル)があるオブジェクトだけが入力・選択可能になります。ただし,確定キー(送信キーやPFキー),プッシュボタンおよびメニューバーは除かれます。

これらのオブジェクトを選択したり,データを入力したりしたあと,フォーカス(カーソル)が次のオブジェクトに移動するタイミングでAPに制御が渡ります。なお,各オブジェクトでの「自動送信」の指定は無効になります。

(b) APでの処理

APでは,画面上の該当するオブジェクトに対応する項目,イベント通知コード,隠しフィールドおよびフォーカス・カーソルにだけ値が格納されます。APではこの項目のデータチェック処理などをします。APでのデータチェック処理などが終わると,APが次に操作するオブジェクトにフォーカス・カーソルを設定し,SEND要求で画面を表示します。するとXMAP3では,今回AP側でフォーカスが設定してあるオブジェクトだけを入力できる状態にして画面を表示します。なお,PFキーやプッシュボタン,タイトルバーなどでの画面確定は常に有効です。

[図データ]

(3) イベント単位

(a) 画面確定のタイミング

画面属性ダイアログの入力単位で「イベント」を指定すると,APから画面を表示するときに,入出力の制限(不活性)を指定しているオブジェクト以外は入力・選択できる状態で表示されます。なお,各オブジェクトでの「自動送信」の指定は無効になります。

これらのオブジェクトの一つを選択,またはデータを入力したあと,フォーカス・カーソルが次のオブジェクトに移動するタイミングでAPに制御が渡ります。このとき,個々のオブジェクトを識別する通知コードがAPに渡ります。通知コードはイベント通知コードという定数です。なお,イベントが発生したとき,APに通知するかどうかは画面属性ダイアログで指定できます。イベントの定義に関しては「8.4.2(32) イベント通知コード」を参照してください。またAPにイベントが渡るタイミングについては「8.2.7 画面確定とAPへの通知」を参照してください。

(b) APでの処理

APでは,論理マップ中のイベント通知項目に格納されているイベント通知コードによって,渡されたデータがどのオブジェクトから渡されたものかを判断し,そのオブジェクトに該当する処理のサブルーチンなどを呼び出します。

そのため,オブジェクトにはユニークなイベント通知コードが自動的に割り当てられます。ただし,反復(繰り返し)オブジェクトに対しては,同じイベントを返します。

イベント通知コードは,論理マップと一緒にオブジェクトに対応したデータ名に「-V」を付けてイベント定数として生成されます。オブジェクトに対応するデータ名を使用しているため,AP中で,オブジェクトとイベントの対応がわかりやすくなっています。

(例)

データ名がFIELD1-の場合

出力データ項目:FIELD1-O

入力データ項目:FIELD1-I

イベント定数 :FIELD1-V

[図データ]

注1

入力単位が「イベント」の場合,「自動送信」の指定は無効になります。入力単位が「イベント」のときは常に,活性状態のオブジェクトの一つを選択,またはデータを入力したあと,フォーカス・カーソルが次のオブジェクトに移動するタイミングでAPに制御が渡ります。

注2

繰り返しの指定があるテキスト・フィールドのイベント通知コードは,先頭のテキスト・フィールドのイベント定数がAPに返ります。

注3

ドローセットアップのイベント通知コードダイアログで「通知コードの長さ」を4以外で設定すると,入力単位「イベント」は利用できません。

(4) 表示直後(強制送信)

(a) 画面確定のタイミング

画面属性ダイアログの入力単位で「表示直後」を指定すると,画面に対して何の操作がされなくても,一定の時間が過ぎると自動的にAPに制御を渡します。その場合のイベント通知コードは,送信キーを押したときと同じ値を返します。また,APに制御が渡るまでの時間を設定しないで,表示直後にAPに制御を渡すような設定もできます。なお,設定した時間が過ぎる前に,ボタンを押すなど,画面に対する操作をした場合は,表示直後の指定が解除され,画面単位と同じ動作になります。

スプラッシュ画面や,表示専用の掲示板のような画面を表示するときに利用できます。

(b) APでの処理

[図データ]