16.8.5 一部上書/全面書換の方法
APから画面表示をするときに,一部上書と全面書換をマッピングオプションで使い分けられます。同じ画面の一部のデータを再表示する場合は,一部上書を使うと効果的です。
- 〈この項の構成〉
(1) マッピングオプションの指定
一部上書にするには「論理マップだけ」,全面書換にするには「マージ」を指定します。
COBOLのSEND文,TRANSCEIVE文を使う場合は,MAPPING MODE句に指定します。
COBOLのCALL文,またはC言語を使う場合は,マッピングインタフェース領域に指定します。
(2) 同じ画面の再表示時に一部上書にする方法
同じ画面の再表示時に一部上書にする方法を次に示します。
(a) 前提となる定義
次の手順を実行してください。
-
ドローで,画面属性の[入力・選択状態の扱い]に「未入力・未選択」または「状態を維持」を指定します。
-
該当するオブジェクトの属性の[初期値]に「なし」を指定します。
-
1.の指定によって,データ未入力を埋字以外で判定する必要が生じた場合には,ドローセットアップの[論理マップ属性]ダイアログで,[初期クリア文字]に「埋字」以外を指定します。さらに,「セットアップ情報の反映」で,マップを再生成します。
(b) 1回目の表示時
次の手順を実行してください。
-
プログラム中のマッピングオプションに,「マージ」を指定します。
-
TRANSCEIVE文,SEND文で画面を表示します。
(c) 同じ画面の再表示時
次の手順を実行してください。
-
プログラム中のマッピングオプションに,「論理マップだけ」を指定します。
-
画面表示時に変更しない項目にデータ有無コードを格納します。
-
動的変更属性の指定があれば,プログラム中の制御項目(修飾名を格納する論理マップのエリア)に格納します。
-
項目データは,先頭1バイト目,またはすべての項目データに対して格納します。
-
出力論理マップがデータ有無コードでクリアされるため,表示中のデータを記憶しておく場合には別のエリアに画面情報をバックアップしておくような対処が必要です。
-
-
画面表示時に変更する項目だけにデータを格納します。
-
画面の表示形態を指定する制御項目(マップ名-CNTRLO)に,動的変更用の定数テーブル中の「XMAP-CNTRL1(標準の場合)」を格納します。
-
TRANSCEIVE文,SEND文で1回目と同じマップ名を再表示します。
このコーディングのひな形として,APパターンCRLINP01.CBLを利用できます。