ABAP中關鍵字TYPES與DATA


  TYPES關鍵字用於創建自定義數據類型,就像JAVA里面創建類一樣,用TYPES創建的數據類型可以被其它變量引用(類似於實例化對象),而本身不能直接引用或者賦值。
  DATA關鍵字用於定義結構體,可以自定義結構體或者參考某一個自定義類型創建對象,我把它稱為實例化對象。
  [For Example]

  TYPES:BEGIN OF ILINE,  "創建一個類型,包含三個字段  TYPES:定義的是類型  DATA:則為對象 
        FIRST_NAME(30) TYPE C,
        LAST_NAME(30) TYPE C,
        AGE TYPE I,
        END OF ILINE.
      
  DATA WA TYPE ILINE. "定義一個結構
 
  DATA ITAB TYPE ILINE OCCURS WITH HEADER LINE. "參數某個結構創建的包含HEADER LINE的內表
  DATA JTAB TYPE ILINE OCCURS 0. "參照某個結構創建的無表HEADER LINE的內表,如果單獨創建(不參照某個結構)則包含表頭,如下創建自定義結構.

  DATA: BEGIN OF OTAB OCCURS 0, "以此種方式自定義的結構默認帶HEADER LINE
        FIRST_NAME(30) TYPE C,
        LAST_NAME(30) TYPE C,
        AGE TYPE I,
       END OF OTAB.


  ITAB-FIRST_NAME = 'VANCY'.
  ITAB-LAST_NAME = 'WEI'.
  ITAB-AGE = 10.
  APPEND ITAB.

  ITAB-FIRST_NAME = 'AOBAMA'.
  ITAB-LAST_NAME = 'WEI'.
  ITAB-AGE = 10.
  APPEND ITAB.


  ITAB-FIRST_NAME = 'LIKEM'.
  ITAB-LAST_NAME = 'WEI'.
  ITAB-AGE = 10.
  APPEND ITAB.


  LOOP AT ITAB.
    WRITE:/ 'SY-TABIX=',SY-TABIX,
          'FIRST_NAME=',ITAB-FIRST_NAME,
          'LAST_NAME=',ITAB-LAST_NAME,
          'AGE=',ITAB-AGE LEFT-JUSTIFIED.
  ENDLOOP.

  *無表頭的只能通過WORK AREA來添加數據進入內表,而有表頭的兩種方式都可以用
  WA-FIRST_NAME = 'SUNDAY'.
  WA-LAST_NAME = 'WEI'.
  WA-AGE = 10.
  APPEND WA TO JTAB.

  WA-FIRST_NAME = 'MONDAY'.
  WA-LAST_NAME = 'WEI'.
  WA-AGE = 10.
  APPEND WA TO JTAB.


  WA-FIRST_NAME = 'TUESDAY'.
  WA-LAST_NAME = 'WEI'.
  WA-AGE = 10.
  APPEND WA TO JTAB.

  LOOP AT JTAB INTO WA.
    WRITE:/ 'SY-TABIX=',SY-TABIX,
           'FIRST_NAME=',WA-FIRST_NAME,
           'LAST_NAME=',WA-LAST_NAME,
           'AGE=',WA-AGE LEFT-JUSTIFIED.
  ENDLOOP.

  OTAB-FIRST_NAME = 'JANUARY'.
  OTAB-LAST_NAME = 'WEI'.
  OTAB-AGE = 1.
  APPEND OTAB.

  OTAB-FIRST_NAME = 'FEBRUARY'.
  OTAB-LAST_NAME = 'WEI'.
  OTAB-AGE = 10.
  APPEND OTAB.


  OTAB-FIRST_NAME = 'MARCH'.
  OTAB-LAST_NAME = 'WEI'.
  OTAB-AGE = 10.
  APPEND OTAB.

  LOOP AT OTAB.
    WRITE:/ 'SY-TABIX=',SY-TABIX,
          'FIRST_NAME=',OTAB-FIRST_NAME,
          'LAST_NAME=',OTAB-LAST_NAME,
          'AGE=',OTAB-AGE LEFT-JUSTIFIED.
  ENDLOOP.
  程序運行界面如下:
  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM