16.3.6 リストボックス
リストボックスの論理マップ生成規則とマッピング規則について説明します。
- 〈この項の構成〉
(1) リストボックスの定義
-
リストボックスの属性
リストボックスダイアログで「動的変更(APから表示属性を変更する)」を選ぶことで生成されます。
-
リスト制御項目のデータ名:マップ名-FIELDnnnn-A
データ名は,リストボックスダイアログのAPが受け取る項目の「データ名」に従います。
-
長さ:2
長さは,ドローセットアップの「運用管理者用の設定」の[修飾名の設定]ボタンをクリックして表示される,修飾名の設定ダイアログで変更できます。変更するときには,「動的変更の種別」から「候補選択コントロール/コマンドコントロール」を選択し,「修飾名長」で長さを設定します。
-
-
論理テーブル
-
可変用論理テーブルのデータ名:マップ名-LISTnnnn-O
-
回数:指定したリスト項目数
-
可変リストラベル項目のデータ名:マップ名-LIST-LABELnnnn-O
データ名は,リストボックスダイアログのラベルの「データ名」で変更できます。
-
データ型:ラベルのデータ型で指定
-
長さ:ラベルのデータ長で指定
-
可変リストコード項目のデータ名:マップ名-LIST-CODEnnnn-O
データ名は,リストボックスダイアログの通知コードの「データ名」で変更できます。
-
長さ:2
長さは,リストボックスダイアログのAPが受け取る項目の「データ長」に従います。
-
-
リストボックス
-
ボックス単位通知項目のデータ名:マップ名-FIELDnnnn-I
データ名は,リストボックスダイアログのAPが受け取る項目の「データ名」で変更できます。
-
長さ:APが受け取る項目のデータ長で指定
-
(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'のようなデータが該当する。テキスト項目の桁寄せ向きに従って桁寄せし,埋字指定の内容で埋字をして表示する。
画面の表示長より長いデータ
テキスト項目の桁寄せ向きに従って桁寄せし,余りを切り捨てて表示する。
−
物理マップ
何も表示しない。
(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) マッピング規則
-
入力操作と結果(論理項目の内容)
入力操作
結果(論理項目の内容)
リストボックス中からリストを選ぶ
選んだリストに対応する定数を論理項目に代入する。単一選択リストボックスは最後に選択したリストを,複数選択リストボックスで複数のリストを選んだ場合,選択したすべてのリストに対応する定数を論理項目に代入する。
リストボックスの中からリストを選ばない,またはリストボックスにフォーカスを位置づけない
リスト属性情報で初期選択を指定したリストに対応する定数を論理項目に代入する。ただし,単一選択リストボックスは最初に選択したリストを,複数選択リストボックスで複数のリスト属性情報に初期選択を指定した場合は指定したすべてのリストに対応する定数を論理項目に代入する。
リスト属性を指定しなかった場合,論理項目の初期値で指定した定数を論理項目に代入する。
論理項目の初期値を指定しなかった場合,ドローセットアップの論理マップ属性で指定した初期クリア文字に従って論理項目を初期化する。