7.9.12 @@getdata関数

形式
@@getdata( 可変記号 [ { ,"リポジトリの言語区分" [,BASIC_ATTR]
| ,,BASIC_ATTR } ] )
[ ]は省略できることを示します。
{ }は項目のどちらか一つを記述することを示します。
機能
@@interface文で指定した可変記号からデータ項目の定義情報を取得するときに使用します。データ定義ファイルからレコード定義を参照している場合,レコード定義で定義されたデータ項目の情報も取得できます。
規則
  • @@set文の右辺に指定する。
  • 可変記号には@@interface文でATTR=ITEMを指定した修飾名,またはATTRでデータ定義種別を指定した可変記号を指定できる。
  • リポジトリの言語区分によって,言語別詳細情報の対象言語を選択できる。
  • リポジトリの言語区分はSEWB+/REPOSITORYに登録されている言語区分を文字定数で指定する。省略した場合,@@lang文のFOR_REPOSITORY句の指定に従う。
  • BASIC_ATTRを指定すると,データ項目の基本属性タブ情報の取得ができる。
  • データ項目の定義情報は,@@set文の左辺の可変記号に二次元の配列で設定される。
  • 一次元目の配列はデータ項目ごとに確保され,その要素数は下位のデータ項目を含めた数と同じ。一次元の配列の添字には,数値を指定する。
  • 二次元目の配列は,データ項目の定義情報ごとに確保される。二次元の配列の添字には,キーワードを指定する。
  • 基本属性タブ情報の標準名称,振り仮名,コメント,およびフィールドは,辞書での指定順に三次元の配列として設定される。
  • 三次元の配列の要素には,各定義情報の定義順を数値で指定する。
  • レコード定義ファイルにコピー文(タイプ@)の指定がある場合,下位のレコード定義情報は参照できない。

取得できるデータ項目の定義情報は,データ定義に結合項目が指定されている場合と,レコード定義が指定されている場合で異なります。データ項目の定義情報を次の表に示します。

表7-7 データ項目の定義情報(データ定義に結合項目が指定されている場合)

データ項目の定義情報添字に指定するキーワード
名称データ項目名DataItemName
属性分類Type1
けた数Digit23
小数部けた数FloatDigit23
反復回数RepeatLevel2
言語別詳細情報名前SourceName
タイプ/フリー定義SourceType4
タイプ修飾情報TypeModifyInfo
初期値InitValue
フィールドField
取りうる値の定義数AvailableCount 5
取りうる値の記号AvailableName 6
取りうる値の値AvailableValue 6
データ項目の結合関係を表す情報レベルLevel7
上位の項目の位置ParentRow8
基本属性タブ情報国語別情報の定義数LangTypeCount9
標準名称StdName10
振り仮名Furigana10
コメントComment10
フィールドの定義数FieldCount11
フィールドBasicField12

表7-8 データ項目の定義情報(データ定義にレコード定義ファイルが指定されている場合)

データ項目の定義情報添字に指定するキーワード辞書参照なし辞書参照あり
名称データ項目名DataItemName
属性分類Type※1×
けた数Digit※2※3
小数部けた数FloatDigit※2※3
反復回数RepeatLevel※2※19
言語別詳細情報名前SourceName
タイプ/フリー定義SourceType※4
タイプ修飾情報TypeModifyInfo※19
初期値InitValue※19
フィールドField×
取りうる値の定義数AvailableCount ※5×
取りうる値の記号AvailableName ※6×
取りうる値の値AvailableValue ※6×
データ項目の結合関係を表す情報レベルLevel※7
上位の項目の位置ParentRow※8
基本属性タブ情報国語別情報の定義数LangTypeCount※9
標準名称StdName※10
振り仮名Furigana※10×
コメントComment※10
フィールドの定義数FieldCount※11×
フィールドBasicField※12×
レコード定義固有の情報CHARCTER TYPECharcterType※13※19
CHARCTER TYPE値CharcterTypeValue※19
指標名Index※19
可変反復回数項目名RepeatLevelName※19
可変反復回数最小値RepeatMini※19
アドレス名AddressName※19
再定義名RedefineName※19
EXTERNALExternal※14※19
SYNCSync※15※19
JUSTJust※16※19
BLANK ZEROBlankZero※17※19
辞書参照Dict※18※19
(凡例)
○:定義情報を取得できる
×:常に0文字の文字列が設定される

SourceType,Level,ParentRow以外はSEWB+/REPOSITORYで定義した値になります。

注※1

Typeの値は,SEWB+/REPOSITORYの属性の分類で選択した値が設定されます。設定値を次に示します。

注※2

数値を指定する項目の定義情報が未指定の場合,0文字の文字列が設定されます。

注※3

結合データの場合,設定される値は不定です。

注※4

SourceTypeの値は,ルールスクリプト中のキーワード(@TYPE)の値と同じになります。ルールスクリプト中のキーワードについてはマニュアル「SEWB+/REPOSITORY 辞書設計ガイド」を参照してください。

データ項目のタイプが集団項目の場合,SourceTypeの値は0文字の文字列が設定され,タイプ「@コピー文」が指定された場合,SourceTypeの値は「@」が設定されます。

注※5

AvailableCountの値は,AvailableNameとAvailableValueの三次元目の配列要素の数が設定されます。

注※6

AvailableNameとAvailableValueの値は,データ項目辞書で指定された順に三次元目の配列要素として設定されます。

注※7

Levelの値は,可変記号に指定されたデータ項目を1として,結合関係の階層の深さが設定されます。

注※8

ParentRowの値は,上位のデータ項目の配列の位置が設定されます。上位のデータ項目が最上位結合項目の場合は,0が設定されます。

注※9

LangTypeCountの値は,StdName,Furigana,およびCommentの三次元の配列要素の数が設定されます。要素数は,常に4(日本語,英語,未設定1,未設定2)です。

注※10

StdName,Furigana,およびCommentの値は,国語別で指定された順に三次元の配列要素として設定されます。

注※11

FieldCountの値は,BasicFieldの三次元の配列要素の数が設定されます。要素数は,常に20です。

注※12

BasicFieldの値は,データ項目辞書で指定された順(フィールド1~フィールド20)に三次元の配列要素として設定されます。

注※13

レコード定義で選択したCHARCTER TYPEが設定されます。

注※14

レコード定義でEXTERNALが選択されている場合,「EXTERNAL」が設定されます。選択されていない場合,0文字の文字列が設定されます。

注※15

レコード定義でSYNCが選択されている場合,「SYNC」が設定されます。選択されていない場合,0文字の文字列が設定されます。

注※16

レコード定義でJISTが選択されている場合,「JIST」が設定されます。選択されていない場合,0文字の文字列が設定されます。

注※17

レコード定義でBLANK WHEN ZEROが選択されている場合,「BLANK WHEN ZERO」が設定されます。選択されていない場合,0文字の文字列が設定されます。

注※18

辞書参照の場合,「参照」または「構成」が設定されます。辞書を参照していない場合,0文字の文字列が設定されます。

注※19

言語種別がSQLの場合は,常に0文字の文字列が設定されます。


使用例1(BASIC_ATTRオペランド指定なし)
[図データ]

@@getdata関数で取得されるデータ項目の定義情報(言語区分は「COBOL又はOOCOBOL」) 1/2

項番LevelDataItemNameTypeDigitFloatDigitRepeatLevelParentRow
11社員情報結合データ 0
22社員番号英数字文字列データ15  1
32氏名結合データ 1
43英数字文字列データ30  3
53英数字文字列データ30  3
62入社年整数データ4  1
72在職コード英数字文字列データ1  1

定義情報の続き 2/2

項番Source
Name
SourceTypeTypeModifyInfoInitValueFieldAvailableCountAvailableNameAvailableValue
1社員情報_CBL       
2社員番号_CBLX      
3氏名_CBL       
4氏_CBLX      
5名_CBLX      
6入社年_CBL9      
7在職コード_CBLX   2在職SPACE
退職'A'
表中のキーワードは説明上,付けているものです。また,空欄は,画面上で値が設定されていないことを示します。
注※
結合データのけた数(Digit)小数けた数(FloatDigit)の値は不定です。

テンプレート
[図データ]
[図データ]
●可変記号に最上位結合項目を指定した場合
@@set文
[図データ]
@RECの内容
@RECの値はSEWB+/REPOSITORYでの定義内容が展開されます。
生成ソース
[図データ]
●可変記号に結合項目(氏名)を指定した場合
@@set文
[図データ]
@RECの内容 1/2
項番LevelDataItemNameTypeDigitFloatDigitRepeatLevelParentRow
11氏名結合データ 0
22英数字文字列データ30  1
32英数字文字列データ30  1

@RECの内容の続き 2/2

項番SourceNameSourceTypeTypeModifyInfoInitValueField
1氏名_CBL    
2氏_CBLX   
3名_CBLX   
表中のキーワードは説明上,付けているものです。また,空欄は,画面上で値が設定されていないことを示します。
注※
結合データのけた数(Digit)小数けた数(FloatDigit)の値は不定です。

生成ソース
[図データ]
●可変記号に単項目(氏)を指定した場合
@@set文
[図データ]
@RECの内容 1/2
LevelDataItemNameTypeDigitFloatDigitRepeatLevelParentRow
1英数字文字列データ30  0

@RECの内容の続き 2/2

SourceNameSourceTypeTypeModifyInfoInitValueField
氏_CBLX   
表中のキーワードは説明上,付けているものです。また,空欄は,画面上で値が設定されていないことを示します。

生成ソース
[図データ]
●可変記号にレコード定義ファイルを指定した場合
@@set文
[図データ]
@RECの内容
@RECの値はSEWB+/RECORD DEFINERで定義したレコード定義ファイルの内容が展開されます。
レコード定義ファイル
項番レベルデータ項目名名前タイプけた数少数けた数EXTERNAL辞書参照
11社員情報社員情報_CBL   オン 
22社員番号社員番号_CBLX15 オフ参照
32氏名氏名_CBL   オフ参照
43氏_CBLX30 オフ構成
53名_CBLX30 オフ構成
表中のキーワードは説明上,付けているものです。また,空欄は,画面上で値が設定されていないことを示します。

生成ソース
[図データ]
使用例2(BASIC_ATTRオペランド指定あり)
[図データ]

@@getdata関数で取得されるデータ項目の定義情報(言語区分は「COBOL又はOOCOBOL」) 1/3

項番LevelDataItemNameTypeDigitFloatDigitRepeatLevelParentRow
11社員情報結合データ11 0
22社員番号英数字文字列データ15  1
3    

@@getdata関数で取得されるデータ項目の定義情報の続き 2/3

項番Source
Name
SourceTypeTypeModifyInfoInitValueFieldAvailableCountAvailableNameAvailableValue
1社員情報_CBL       
2社員番号_CBLX      
3       

@@getdata関数で取得されるデータ項目の定義情報の続き 3/3

項番LangTypeCountStdNameFuriganaCommentFieldCountBasicField
14社員情報シャインジョウホウ※2社員情報ファイル20フィールド01
clerk_data clerk_data_fileフィールド02
   フィールド03
   
フィールド20
24社員番号シャインバンゴウ※2 20 
    
    
3    
表中のキーワードは説明上,付けているものです。
注※1
結合データのけた数(Digit)小数けた数(FloatDigit)の値は不定です。
注※2
半角で表示されます。

テンプレート
[図データ]
[図データ]
●可変記号に最上位結合項目またはレコード定義ファイルを指定した場合
@@set文
[図データ]
@RECの内容
@RECの値は,SEWB+/REPOSITORYおよびレコード定義での定義内容が展開されます。
生成ソース
[図データ]