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


16.2.5 可変項目

〈この項の構成〉

(1) 可変項目の定義

CUI画面,GUI画面,およびGUI画面内のフィールドボックスでは,各項目の名称が次の表のように異なります。

表16‒1 可変項目の名称の違い

CUI画面

GUI画面

フィールドボックス

出力フィールド

出力テキストボックス

出力フィールド

入出力フィールド

入出力テキストボックス

入出力フィールド

各項目の名称は,それぞれの画面での名称に置き換えてください。

出力項目

出力テキストボックス,または出力フィールドに対して生成されます。

  • 出力項目   :マップ名-FIELDnnnn-O

  • 繰り返し回数 :縦,または横の反復回数(出力フィールドだけ)

  • 長さ     :論理項目の長さ。指定がないときはフィールドのデータ長

  • データ型   :テキストボックス,フィールドのデータ型で設定

  • 使用目的   :テキストボックス,フィールドの使用目的で設定

出力項目の使用目的を次の表に示します。

表16‒2 出力項目の使用目的と使用できる項目

使用目的

使用できる項目

数字

文字,数字編集項目

英数

文字

日本語

文字,漢字

入力項目

入出力テキストボックス,または入出力フィールドに対して生成されます。次に示す入力項目以外の定義内容は「出力項目」と同じになります。

  • 入力項目 : マップ名-FIELDnnnn-I

入力項目の使用目的を次の表に示します。

表16‒3 入力項目の使用目的と使用できる項目

使用目的

使用できる項目

使用目的

使用できる項目

数字

文字,数字編集項目

英数

文字

金額

文字編集項目

日本語

文字,漢字

数値

文字編集項目

MCR

文字

カナ

文字

パスワード

文字

入出力項目

入出力テキストボックス,または入出力フィールドに対して生成されます。論理マップは,入力論理マップと出力論理マップに分けて出力されます。定義内容は出力項目と同じになります。

(2) 可変項目の出力論理マップ生成規則とマッピング規則

可変項目の出力論理マップ生成規則と論理マップ生成規則について説明します。

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

初期値を設定しない場合
COBOL

COBOLの可変項目の生成規則は,使用目的によってデータ型が変わります。

・数字項目の場合

  {02|03} マップ名-FIELDnnnn-O PIC 9(長さ)〔OCCURS 回数〕.

・文字項目の場合

  {02|03} マップ名-FIELDnnnn-O PIC X(長さ)〔OCCURS 回数〕.

・漢字項目の場合

  {02|03} マップ名-FIELDnnnn-O PIC N(長さ÷2)〔OCCURS 回数〕.

・数字編集項目の場合

  {02|03} マップ名-FIELDnnnn-O PIC 編集文字〔OCCURS 回数〕.
C言語
unsigned char マップ名_FIELDnnnn_O 〔[回数]〕[長さ];

  • C言語使用時は,数字編集項目は指定できません。

  • 日本語では,「桁寄せ」は左寄せになります。

初期値を指定した場合

初期値を指定した場合の論理マップ生成例は初期値を指定しないときと同じです。

(b) マッピング規則

初期値を設定しない場合
APが出力項目データ名の領域に代入した内容と結果

APが出力項目データ名

の領域に代入した内容

マッピング

オプション

結果

すべてデータの場合

マージ,

論理マップ

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

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

データ有無コード(1F)16を設定した場合,例としてX'1F414234'またはX'1F1F1F'のようなデータが該当する。このとき,表示形態が「全面書換」か「一部上書」によって次のように異なる。

 全面書換の場合:何も表示しない。

 一部上書の場合:直前に表示したデータのまま表示する。

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

データ有無コード(1F)16を仮定した場合,例として

X'4142431F1F'のようなデータが該当する。この場合,「桁寄せ」の指定に従って桁寄せをし,指定した埋字を埋めて表示する。埋字と桁寄せのマッピング規則については,「16.2.9 埋字と桁寄せ(出力フィールド)」を参照のこと。

物理マップ

データを表示しない。

(凡例)

−:該当しない。

初期値を指定した場合
APが出力項目データ名の領域に代入した内容と結果

APが出力項目データ名

の領域に代入した内容

マッピング

オプション

結果

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

マージ,

論理マップ

先頭1文字がデータ有無コードのときの結果を参照。

すべてデータ

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

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

この場合,「桁寄せ」の指定に従って桁寄せをし,指定した埋字を埋めて表示する(数字編集項目の場合は,編集文字に従って編集してから表示)。埋字と桁寄せのマッピング規則については,「16.2.9 埋字と桁寄せ(出力フィールド)」を参照のこと。

物理マップ

先頭1文字がデータ有無コードのときの結果を参照。

(凡例)

−:該当しない。

先頭1文字がデータ有無コードのときの結果

初期値の内容

結果

すべて空白((20)16

項目全体を空白で表示する。

すべて0((30)16

項目全体を0で表示する。

すべてヌル((00)16

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

繰り返し文字指定

項目全体を繰り返し文字で表示する。

初期値の長さと画面の表示長とが等しい

初期値を項目に表示する。

初期値の長さが画面の表示長より短い

定義で指定した「桁寄せ」,および埋字に従って表示する。埋字抑止を指定した場合は,左寄せで初期値を項目に表示する。

初期値の長さが画面の表示長より長い

「桁寄せ」に従って桁寄せし,余りを切り捨てて項目を表示する。

(3) 可変項目の入力論理マップ生成規則とマッピング規則

入出力フィールド・テキストを指定した場合の可変項目の入力論理マップ生成規則と論理マップ生成規則について説明します。

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

COBOL

COBOLの可変項目の生成規則は,使用目的によってデータ型が変わります。

論理マップ可変部の集団項目化を指定した場合

・数字項目の場合
03 マップ名-FIELDnnnn-H 〔OCCURS 回数〕.
 04 マップ名-FIELDnnnn-I  PIC 編集文字.
・文字項目の場合
03 マップ名-FIELDnnnn-H 〔OCCURS 回数〕.
 04 マップ名-FIELDnnnn-I  PIC X(長さ).
・漢字項目の場合
03 マップ名-FIELDnnnn-H 〔OCCURS 回数〕.
 04 マップ名-FIELDnnnn-I  PIC N(長さ÷2).

論理マップ可変部の集団項目化を指定していない場合

・数字項目の場合
02 マップ名-FIELDnnnn-I  PIC 9(長さ) 〔OCCURS 回数〕.
・文字項目の場合
02 マップ名-FIELDnnnn-I   PIC X(長さ) 〔OCCURS 回数〕.
・漢字項目の場合
02 マップ名-FIELDnnnn-I   PIC N(長さ÷2) 〔OCCURS 回数〕.
C言語
unsigned char マップ名_FIELDnnnn_I 〔[回数]〕[長さ];

(b) マッピング規則

入力操作と入力項目データ名の領域の内容
使用目的が日本語以外の場合

入力操作

結果(入力項目データ名の領域の内容)

半角のデータを入力

データを入力項目データ名の領域に代入する。

全角,または半角/全角のデータを入力

エラー通知文字に従ってエラー通知文字で入力項目データ名の領域をクリアする。コードエラーを検出したときのマッピング規則については,「16.2.13 コードエラーを検出したとき」を参照のこと。

フィールドキーを押す(すべて(00)16のデータ入力)

データ消去通知文字に従って入力項目データ名の領域をクリアする。フィールドキーを押したときのマッピング規則については,「16.2.10 フィールドキーを押したとき」を参照のこと。

入力操作なし

(初期値を指定している)

初期値で指定した定数を入力項目データ名の領域に代入する。

(初期値を指定していない)

初期クリア文字に従って入力データ名の領域をクリアする。入力操作がなかったときのマッピング規則については,「16.2.12 入力操作がなかったとき」を参照のこと。

注※

カナのときだけ該当します。数字または英数字のときは,キー入力時点で入力できません。

使用目的が日本語かつデータ型が漢字の場合

入力操作

結果(入力項目データ名の領域の内容)

全角のデータを入力または半角スペースを入力

データを入力項目データ名の領域に代入する。

フィールドキーを押す(すべて(00)16のデータ入力)

データ消去通知文字に従って入力項目データ名の領域をクリアする。フィールドキーを押したときのマッピング規則については,「16.2.10 フィールドキーを押したとき」を参照のこと。

入力操作なし

(初期値を指定している)

初期値で指定した定数を入力項目データ名の領域に代入する。

(初期値を指定していない)

初期クリア文字に従って入力データ名の領域をクリアする。入力操作がなかったときのマッピング規則については,「16.2.12 入力操作がなかったとき」を参照のこと。

使用目的が日本語かつデータ型が文字の場合

入力操作

結果(入力項目データ名の領域の内容)

(00)16以外のデータを入力

データを入力項目データ名の領域に代入する。

フィールドキーを押す(すべて(00)16のデータ入力)

データ消去通知文字に従って入力項目データ名の領域をクリアする。フィールドキーを押したときのマッピング規則については,「16.2.10 フィールドキーを押したとき」を参照のこと。

入力操作なし

(初期値を指定している)

初期値で指定した定数を入力項目データ名の領域に代入する。

(初期値を指定していない)

初期クリア文字に従って入力データ名の領域をクリアする。入力操作がなかったときのマッピング規則については,「16.2.12 入力操作がなかったとき」を参照のこと。