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


16.5.1 定数部の論理マップ生成規則

〈この項の構成〉

(1) 定義部の定義

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

(a) 出力論理マップ長の出力の指定

出力論理マップの論理マップ生成例を示します。また,ここで説明する出力論理マップ長とは,定数部だけの論理マップ長です。

COBOL
・Windowsリトルエンディアン用
01 マップ名T PIC S9(4) COMP-5 VALUE +長さ.
・Windowsビッグエンディアン用,UNIX用

<論理マップ長が10,000バイト未満の場合>

 01 マップ名T PIC S9(4) COMP VALUE +長さ.

<論理マップ長が10,000バイト以上の場合>

 01 マップ名U PIC X(2) VALUE X'長さ'.
 01 マップ名T REDEFINES マップ名U PIC S9(4) COMP.
C言語
・Windowsリトルエンディアン用,UNIX用
short マップ名T=長さ;
・Windowsビッグエンディアン用
unsigned char マップ名T[2]={0x長さ};

(b) カーソル定数の出力の指定

カーソル定数を指定したときの論理マップ生成例を示します。

・繰り返し項目がある場合

 COBOL
・Windows用
01 マップ名D.
 02 項目データ名D.
  03 FILLER PIC X(2) VALUE X'nnnn'.
     :
 02項目データ名T REDEFINES 項目データ名D OCCURS 回数.
・UNIX用

<カーソル定数の値が10,000未満の場合>

 01 マップ名D.
  02 項目データ名D.
   03 FILLER PIC S9(4) COMP VALUE +nnnn.
      :
  02項目データ名T REDEFINES 項目データ名D OCCURS 回数.

<カーソル定数の値が10,000以上の場合>

 01 マップ名D.
  02 項目データ名D.
           :
   03 FILLER PIC X(2) VALUE X'nnnn'.
      :
  02項目データ名T REDEFINES 項目データ名D OCCURS 回数.
 C言語
struct {
  unsigned char 項目データ名T [回数][2];
    :
} マップ名D={0xnn,0xnn〔,…〕};

・繰り返し項目がない場合

 COBOL
・Windows用
01 マップ名D.
 02 項目データ名T.
  03 FILLER PIC X(2) VALUE X'nnnn'.
     :
・UNIX用

<カーソル定数の値が10,000未満の場合>

 01 マップ名D.
  02 項目データ名T.
   03 FILLER PIC S9(4) COMP VALUE +nnnn.
      :

<カーソル定数の値が10,000以上の場合>

 01 マップ名D.
  02 項目データ名T.
           :
   03 FILLER PIC X(2) VALUE X'nnnn'.
      :
 C言語
struct {
  unsigned char 項目データ名T [2];
    :
} マップ名D={0xnn,0xnn};