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


16.3.6 リストボックス

リストボックスの論理マップ生成規則とマッピング規則について説明します。

〈この項の構成〉

(1) リストボックスの定義

(2) リストボックスのボックス属性の論理マップ生成規則とマッピング規則

リストボックスのボックス属性の論理マップ生成規則とマッピング規則について説明します。この項目は,ダイアログで「動的変更(APから表示属性を変更する)」を指定したときだけ論理マップが生成されます。

(a) 論理マップ生成規則

COBOL
{02|03} マップ名-LISTnnnn-A PIC X(長さ)〔OCCURS 回数〕.
C言語
unsigned char マップ名_LISTnnnn_A〔[回数]〕[長さ];

(b) マッピング規則

  • APが制御項目に代入した内容と表示結果

    《「動的変更(APから表示属性を変更する)」を指定した場合》

    APが制御項目に代入した内容

    マッピングオプション

    表示結果

    セットアップで指定してある修飾名と同じ

    マージ

    リストボックスの修飾名に対応する属性を使って表示する。

    先頭にデータ有無コード,または設定していない修飾名

    標準の属性を使って表示する。

    セットアップで指定してある修飾名と同じ

    論理マップ

    リストボックスの修飾名に対応する属性を使って表示する。

    先頭にデータ有無コード,または設定していない修飾名

    (表示形態が「全面書換」のとき)

    標準の属性を使って表示する。

    (表示形態が「一部上書」で直前に表示したマップと同じ場合)

    前回の属性のまま表示する。

    (表示形態が「一部上書」で直前に表示したマップと異なる場合)

    標準の属性を使って表示する。

    物理マップ

    標準の属性を使って表示する。

    (凡例)

    −:該当しない。

    修飾名と修飾名に対応したリスト属性情報は,ドローセットアップの「表示属性の動的変更」の「候補選択コントロール」タブで変更できます。

    《「動的変更(APから表示属性を変更する)」を指定しない場合》

    標準の属性を使って表示します。

(3) リストボックスの論理テーブルの論理マップ生成規則とマッピング規則

リストボックスの論理テーブルの論理マップ生成規則とマッピング規則について説明します。

(a) 論理マップ生成規則

COBOL
{02|03} マップ名-LISTnnnn-O 〔OCCURS 回数〕.
 {03|04} マップ名-LIST-LABELnnnn-O PIC {9(長さ)|X(長さ)|N(長さ÷2)|編集文字}.
 {03|04} マップ名-LIST-CODEnnnn-O PIC {9(長さ)|X(長さ)|N(長さ÷2)|編集文字}.
C言語
struct {
 unsigned char マップ名_LIST_LABELnnnn_O[長さ];
 unsigned char マップ名_LIST_CODEnnnn_O[長さ];
} マップ名-LISTnnnn_O〔[回数]〕;

(b) マッピング規則

  • APが論理項目に代入した内容と表示結果

    《ラベル項目を指定した場合》

    APが論理項目に代入した内容

    マッピングオプション

    表示結果

    すべてデータ

    マージ,

    論理マップ

    代入されたデータを表示する。

    すべて(00)16※1

    ヌルクリアして表示する。

    すべて(20)16※1

    空白で表示する。

    先頭1文字がデータ有無コード

    ※2

    データ有無コード(1F)16を設定した場合,例としてX'1F414234'またはX'1F1F1F'のようなデータが該当する。

    (コード項目の指定がある)

    コード項目のデータを表示する。

    (コード項目の指定がない)

    何も表示しない。

    データの後半にデータ有無コード

    データ有無コード(1F)16を仮定した場合,例としてX'4142431F1F'のようなデータが該当する。テキスト項目の桁寄せ向きに従って桁寄せし,埋字指定の内容で埋字をして表示する。

    画面の表示長より長いデータ

    テキスト項目の桁寄せ向きに従って桁寄せし,余りを切り捨てて表示する。

    物理マップ

    何も表示しない。

    (凡例)

    −:該当しない。

    注※1

    リストの後半に該当する項目がある場合,項目は圧縮されます。

    注※2

    ラベル項目のデータ型とコード項目のデータ型が同じ場合だけ,ラベル項目にデータ有無コードを設定できます。

(4) リストボックスの入力論理マップ生成規則とマッピング規則

リストボックスの入力論理マップ生成例とマッピング規則について説明します。

(a) 入力論理マップ生成規則

COBOL
・論理マップ可変部の集団項目化を指定した場合
03 マップ名-FIELDnnnn-H 〔OCCURS 回数〕.
 04 マップ名-FIELDnnnn-I PIC {X(長さ)|N(長さ÷2)|9(長さ)}.
・論理マップ可変部の集団項目化を指定しない場合
02 マップ名-FIELDnnnn-I PIC {X(長さ)|N(長さ÷2)|9(長さ)} 〔OCCURS 回数〕.
C言語
unsigned char マップ名_FIELDnnnn_I〔[回数]〕[長さ];

(b) マッピング規則

  • 入力操作と結果(論理項目の内容)

    入力操作

    結果(論理項目の内容)

    リストボックス中からリストを選ぶ

    選んだリストに対応する定数を論理項目に代入する。単一選択リストボックスは最後に選択したリストを,複数選択リストボックスで複数のリストを選んだ場合,選択したすべてのリストに対応する定数を論理項目に代入する。

    リストボックスの中からリストを選ばない,またはリストボックスにフォーカスを位置づけない

    リスト属性情報で初期選択を指定したリストに対応する定数を論理項目に代入する。ただし,単一選択リストボックスは最初に選択したリストを,複数選択リストボックスで複数のリスト属性情報に初期選択を指定した場合は指定したすべてのリストに対応する定数を論理項目に代入する。

    リスト属性を指定しなかった場合,論理項目の初期値で指定した定数を論理項目に代入する。

    論理項目の初期値を指定しなかった場合,ドローセットアップの論理マップ属性で指定した初期クリア文字に従って論理項目を初期化する。