トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

ABAP/CREATE DATA

Last-modified: 2016-01-29 (金) 12:46:38 (3003d)
Top > ABAP > CREATE DATA


データ型を作るABAP命令。

概要

データ型を作る。
ここに価値を見出すとしたら、汎用性しかない。

つまり、データ型には依存するものの同じような処理を行う場合に「ソースをコピペして一部だけ手直しする」という知性のかけらもない行為をしたくない場合に利用する。

つまり、コピペしまくって「5kのプログラム書いたよ!大変だったよ!」なんていう手合いには縁のない命令である。

オプション

CREATE DATA xxx (データ型)

用法

サンプル

TYPES : 
  T_TABLE_ORFER TYPE TABLE OF VBAK. 
DATA : 
  REF_ORDER TYPE REF TO T_TABLE_ORDER.

  CREATE DATA REF_ORDER.

  LOOP AT REF_ORDER->*.
    WRITE / REF_ORDER->*. 
  ENDLOOP. 

CREATE DATA xxx TYPE (ABAPデータ型)

用法

DESCRIBEを併用するとええかも。

サンプル

DATA : 
  L_DATA TYPE REF TO DATA.

  CREATE DATA L_DATA TYPE C LENGTH L_FIELD_LENGTH.
  CREATE DATA L_DATA TYPE P LENGTH L_FIELD_LENGTH DECIMALS L_DECIMAL_LENGTH.

CREATE DATA xxx TYPE (テーブル項目)、CREATE DATA xxx LIKE (データオブジェクト)

用法

下記は、レンジテーブルへの動的セット例。

サンプル

FORM F_FUNC_SET_RANGE_TABLE      TABLES   E_RANGE
                                 USING    I_SIGN    TYPE ANY
                                          I_OPTION  TYPE ANY
                                          I_LOW     TYPE ANY
                                          I_HIGH    TYPE ANY.
DATA :
  L_DATA        TYPE REF TO DATA,
  L_COUNTER     TYPE I.
FIELD-SYMBOLS :
  <F_RANGE>     TYPE ANY,
  <F_FIELD>     TYPE ANY.

* レンジテーブルの型を取得し、構造へアサイン
  CREATE DATA L_DATA LIKE LINE OF E_RANGE.
  ASSIGN L_DATA->* TO <F_RANGE>.

* 失敗時は抜ける
  IF ( SY-SUBRC <> 0 ).
    EXIT.
  ENDIF.

* 構造の終わりまでループ
  DO.
*   カウンタのインクリメント
    L_COUNTER = L_COUNTER + 1.
*   構造の項目を順次アサイン
    ASSIGN COMPONENT L_COUNTER OF STRUCTURE <F_RANGE> TO <F_FIELD>.

*   項目の順序ごとに引数を転記
    CASE L_COUNTER.
      WHEN 1.
        <F_FIELD> = I_SIGN.
      WHEN 2.
        <F_FIELD> = I_OPTION.
      WHEN 3.
        <F_FIELD> = I_LOW.
      WHEN 4.
        <F_FIELD> = I_HIGH.
*     ※レンジテーブル以外が引数の場合も抜ける
      WHEN OTHERS.
        EXIT.
    ENDCASE.
  ENDDO.
ENDFORM.

CREATE DATA TYPE HANDLE (Handler)

用法

サンプル

CREATE DATA xxx TYPE REF TO yyy

用法

サンプル

CREATE DATA xxx TYPE TABLE OF (Table), LIKE TABLE OF (Data Object)

用法

内部テーブルを動的に作るとき。
SE16みたいなこともできて、汎用モジュールGUI_DOWNLOADと併用すれば落とせる。

サンプル

PARAMETERS : 
  P_TABNAME TYPE DD02L-TABNAME.

DATA : 
  L_DATA TYPE REF TO DATA.
FIELD-SYMBOLS : 
  <F_INTERNAL_TABLE> TYPE ANY TABLE.

  CREATE DATA L_DATA TYPE STANDARD TABLE OF (P_TABNAME).
  ASSIGN L_DATA->* TO <F_INTERNAL_TABNAME>.

  SELECT * 
    FROM P_TABNAME
    INTO TABLE <F_INTERNAL_TABNAME>.

CREATE DATA xxx AREA HANDLE yyy

用法

サンプル




【スポンサードリンク】
  





コメントはありません。 Comments/ABAP/CREATE DATA?

お名前: