3.1 レコードソース生成規則

レコードソースの生成は,レコード定義の属性領域の各定義と,SEWB+/REPOSITORYが提供する言語別タイプごとのレコード生成キーワードを基に行われます。

レコード生成キーワードは,プログラミング言語で規定されたデータの定義と,データ項目の定義情報を置換するための可変記号(@で始まる文字列)で記述されます。

レコード定義の属性領域に定義されている各定義項目の値が,「COBOL又はOOCOBOL」のレコードソース(COPYメンバ)の生成時にどのように反映されるかについて表3-1に示します。また,レコード生成キーワードの標準設定の内容を表3-2に,可変記号の生成規則を表3-3に示します。

表3-1 属性領域のレコードソース生成規則一覧(COBOL又はOOCOBOL)

定義項目名生成規則
項番
辞書を参照する
レベル

レベル番号に反映される

標準名称

データ項目名

[名前]が指定されていない場合,可変記号(@DATAITEM)に反映される

けた数

可変記号(@LENまたは@ILEN)に反映される

小数部けた数

反復回数

可変記号(@OCCURS)に反映される

コメント

"*コメント"が生成される
改行は,コメント欄で改行したとおりにする

名前

可変記号(@DATAITEM)に反映される
指定されていない場合,[データ項目名]が反映される

タイプ

選択したタイプに応じたレコード生成キーワードから生成される
表3-2参照のこと

フリー定義

可変記号(@FREE)に反映される

初期値

生成ダイアログの[初期値の生成をする]を選択した場合,可変記号(@VALUE)に反映される

編集文字列

可変記号(@EDITCHAR)に反映される

CHAR TYPE(値)

値が指定された場合,"CHARACTER TYPE IS [種別]-[値]"が生成される
値が指定されない場合,"CHARACTER TYPE IS [種別]"が生成される

CHAR TYPE(TYPE)

指標名

"INDEX BY [指標名]"が生成される

可変反復回数(項目名)

"DEPENDING ON [項目名]"が生成される

可変反復回数(最小値)

@OCCURS "OCCURS [最小値] TO @反復回数"が生成される

アドレス名

"ADDRESSED BY [アドレス名]"が生成される

再定義名

"REDEFINES [再定義名]"が生成される

EXTERNAL

"IS EXTERNAL"が生成される

SYNC

"SYNC"が生成される

JUST

"JUST"が生成される

BLANK WHEN ZERO

"BLANK WHEN ZERO"が生成される

(凡例)-:生成しない


表3-2 タイプに応じたレコード生成キーワード(COBOL又はOOCOBOL)

辞書属性(タイプ)レコード生成キーワード
辞書属性(タイプ)レコード生成キーワード
X 英数字項目

@DATAITEM PIC X@LEN @OCCURS @VALUE

Z 数字編集項目

@DATAITEM PIC @EDITCHAR @OCCURS @VALUE

N 漢字項目

@DATAITEM PIC N@LEN @OCCURS @VALUE

9 符号なし外部10進項目

@DATAITEM PIC 9@ILEN@DLEN @OCCURS @VALUE

S 符号付き外部10進項目

@DATAITEM PIC S9@ILEN@DLEN @OCCURS @VALUE

U 符号なし内部10進項目

@DATAITEM PIC 9@ILEN@DLEN USAGE PACKED-DECIMAL @OCCURS @VALUE

P 符号付き内部10進項目

@DATAITEM PIC S9@ILEN@DLEN USAGE PACKED-DECIMAL @OCCURS @VALUE

BU 符号なし2進項目

@DATAITEM PIC 9@ILEN@DLEN USAGE BINARY @OCCURS @VALUE

B 符号付き2進項目

@DATAITEM PIC S9@ILEN@DLEN USAGE BINARY @OCCURS @VALUE

E 外部浮動小数点項目

@DATAITEM PIC @EDITCHAR @OCCURS

D 内部浮動小数点項目

@DATAITEM @COMP @OCCURS ※1

1 内部ブール項目

@DATAITEM PIC 1@LEN USAGE BIT @OCCURS @VALUE

8 外部ブール項目

@DATAITEM PIC 1@LEN USAGE DISPLAY @OCCURS @VALUE

T アドレスデータ項目

@DATAITEM USAGE ADDRESS @OCCURS @VALUE

フリー定義

@DATAITEM @FREE

@コピー文※2

COPY @DATAITEM ※3

空白(集団項目の場合)※2

@DATAITEM @OCCURS @VALUE

注※1 けた数が1~7の場合は"COMP-1",けた数が8~16の場合は"COMP-2"となります。

注※2 @コピー文および空白(集団項目の場合)は,SEWB+/RECORD DEFINERで提供する生成機能です。

注※3 タイプが@コピー文の場合,レベル番号は生成されません。


表3-3 可変記号の生成規則(COBOL又はOOCOBOL)

可変記号生成規則

@DATAITEM

次の順で生成される
  1. @DATAITEMに対して無条件に“[名前]”が生成される
    [名前]が指定されていない場合,“[データ項目名]”が生成される
    [データ項目名]も指定されていない場合,“FILLER”が生成される
  2. 再定義句の指定がある場合,“REDEFINES [再定義名]”が生成される
  3. EXTERNALが選択されている場合,“IS EXTERNAL”が生成される

@LEN

[けた数]がnのとき"(n)”が生成される

@ILEN

[けた数]がm,[小数部けた数]がnのとき“(m-nの値)”が生成される

@DLEN

[小数部けた数]がnのとき“V9(n)”が生成される

@VALUE

“VALUE [初期値]”が生成される

@OCCURS

[反復回数]の指定値により次の生成が行われる
  1. [反復回数]指定あり,[可変反復回数][項目名]指定なし,[可変反復回数][最小値]指定なしの場合
    “OCCURS [反復回数]”が生成される
  2. [反復回数]指定あり,[可変反復回数][項目名]指定あり,[可変反復回数][最小値]指定なしの場合
    “OCCURS [反復回数] DEPENDING 0N [可変反復回数][項目名] が生成される
  3. [反復回数]指定あり,[可変反復回数][項目名]指定あり,[可変反復回数][最小値]指定ありの場合
    “OCCURS [可変反復回数][最小値] TO [反復回数] DEPENDING ON [可変反復回数][項目名]” が生成される

@EDITCHAR

“[編集文字列]”が生成される

@COMP

[タイプ]が「D 内部浮動小数点項目」の場合,”COMP-1“または”COMP-2“が生成される
  • ”COMP-1“:[けた数]が1~7の場合
  • ”COMP-2“:[けた数]が8~16の場合

@FREE

“[フリー定義]”が生成される

@PLEN

[けた数]がnのとき"(n)”が生成される

なし

生成位置:
  1. @OCCURSの直後
  2. @OCCURSがない場合
    @VALUEの直前
  3. @OCCURSおよび@VALUEがない場合
    レコード生成キーワードの末尾
生成順:
  1. ADDRESSED BY [アドレス名]
  2. INDEXED BY [指標名]
  3. SYNC
  4. JUST
  5. BLANK WHEN ZERO
  6. CHARACTER TYPE IS [種別]-[値]

注 可変記号に対応する定義項目が未指定の場合は,生成されません。

注※ 生成ダイアログの[初期値の生成をする]を選択した場合だけ,生成されます。