画面・帳票サポートシステム XMAP3 プログラミングガイド 画面編

[目次][用語][索引][前へ][次へ]

7.1.3 AP分割時の注意

日立COBOLでは,明示的にCALL文でオープンを要求する場合を除き,一つのコンパイル単位で最初のSEND文またはTRANSCEIVE文が発行されると画面がオープンされます。そのため,1画面が1実行ファイル(.EXE)のような構成にすると,画面ごとにオープンをすることになります。この場合,オープン・クローズ,SEND文またはTRANSCEIVE文を発行する実行ファイル,ビジネス処理をする実行ファイルをそれぞれ分けた方が実行性能が高くなります。ビジネス処理をする実行ファイルは,DLLファイルでも代用できます。.EXEファイルにするか.DLLファイルにするかは,処理の形態によって次のように使い分けてください。

また,複数のコンパイル単位のものを合わせて一つの実行ファイルにするときは,各コンパイル単位でオープンを発行しないようにするため,日立COBOLの実行支援の環境変数で,「CBLTERMSHAR=YES」を指定します。「CBLTERMSHAR=YES」は,SEND/RECEIVE/TRANSCEIVEインタフェースのときだけ有効です。CALLインタフェースでは無効になります。

CALLインタフェースの場合,または「CBLTERMSHAR」をサポートしていないバージョンの日立COBOLを使用している場合で,AP間のオープン引き継ぎをするときは,ユーザが,XMAP3インタフェースエリアの情報を引き継ぐようなコーディングをする必要があります。サンプルコーディングとして,APパターンのGENDSP02およびGENDSP03が利用できます。

<この項の構成>
(1) メインの実行ファイルから別の実行ファイルを呼び出す場合
(2) 新しい画面を表示するとき前の画面を消さないで表示しておくケース
(3) 新しい画面を表示するとき前の画面を消す場合
(4) 画面をクローズしないで一時的に表示中の画面を消す場合

(1) メインの実行ファイルから別の実行ファイルを呼び出す場合

メインメニュー(AP1)から各サブプログラム(AP2〜n)を呼び出すケースを次の図に示します。

(2) 新しい画面を表示するとき前の画面を消さないで表示しておくケース

AP1からAP2〜nを呼び出すとき,AP1の画面を消さないで表示しておくケースを次の図に示します。ただし,この方法では動きが遅くなります。

(3) 新しい画面を表示するとき前の画面を消す場合

AP1からAP2〜nを呼び出すとき,AP1の画面を消してAP2を表示するケースを次の図に示します。ただし,この方法では動きが遅くなります。

図7-6 AP1からAP2〜nを呼び出すとき,AP1の画面を消してAP2を表示するケース

[図データ]

(4) 画面をクローズしないで一時的に表示中の画面を消す場合

画面をクローズすると,次表示時には必ずオープンしなければならないので,この間のオープン/クローズの時間が掛かります。このような時間を節約したいときには,GUI画面の画面属性ダイアログの「Z位置」で「後ろに表示」か「一時非表示」を指定します。これらの指定をすると,一時的に表示中の画面を見えないようにできます。いちばん後ろに表示された画面を前に表示させたり,一時的に非表示になった画面を元に戻す場合は,ドローセットアップの「表示属性の動的変更」の「位置属性」タブで「XY位置」を「手前に表示」と指定します。

図7-7 画面をクローズしないで一時的に表示中の画面を消す場合

[図データ]