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


16.4.1 可変項目

ここでは,可変部の出力に関する論理マップ生成規則とマッピング規則について説明します。なお,この項では,COBOLの数字項目の記述を次のようにしています。

〈この項の構成〉

(1) 可変項目の定義

(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) 初期値を指定しない場合

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

(3) 出力項目のマッピング規則

出力項目のマッピング規則について説明します。

(a) 初期値を指定した場合

《APが出力項目データ名の領域に代入した内容と結果》

APが出力項目データ名

の領域に代入した内容

結果

すべて

データ

の場合

すべて空白((20)16

項目全体を印字しません。

すべて0((30)16

項目全体を0で印字します。

すべてNULL((00)16

項目全体を空白で印字します。

上記以外のデータ

代入されたデータを印字します。

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

次表を参照してください。

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

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

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

    初期値の内容

    結果

    すべて空白((20)16

    項目全体を印字しせん。

    すべて0((30)16

    項目全体を0で印字します。

    すべてNULL((00)16

    項目全体を空白で印字します。

    初期値の長さと帳票の印刷長とが等しい

    初期値を項目に印字します。

    初期値の長さが帳票の印刷長より短い

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

    初期値の長さが帳票の印刷長より長い

    「桁寄せ」に従って桁寄せし,余りを切り捨てて項目を印字します。

(b) 初期値を指定しない場合

《APが出力項目データ名の領域に代入した内容と結果》

APが出力項目データ名

の領域に代入した内容

結果

すべて

データ

の場合

すべて空白((20)16

項目全体を印字しません。

すべて0((30)16

項目全体を0で印字します。

すべてNULL((00)16

項目全体を空白で印字します。

上記以外のデータ

代入されたデータを印字します。

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

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

例として,X'1F414234'またはX'1F1F1F'のようなデータが該当します。このときは,データを印字しません。

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

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

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