數據對象與數據類型


數據對象:

主要指常量及變量,多指變量。

變量定義包含name, length, type等,語法如下:
DATA <name> [<length>] type <type>[ value <value>] [ decimal <decimals>]

其中: [] 里的內容表示可選項。<>表示名稱
<name>: 變量名稱, 最長30個字符, 不可含有 + . , : ( ) 等字符
<length>長度,要用圓括號括起來 如 LINE(20) TYPE C.
<type>:數據類型
<value>: 初始值
<decimals>: 小數位

TYPES: BEGIN OF TY_DATA,
         a(10) TYPE C,
         b(10) TYPE C,
         c(10) TYPE C,
       END OF TY_DATA.

TYPES: DD(10) TYPE C.
DATA: E TYPE DD.
DATA:F TYPE TY_DATA.
F-A = '111'.
F-B = '121'.
F-C = '114'.
E = '2223'.
WRITE:/ F ,E.

DATA A1(10) TYPE C VALUE '3'.
WRITE A1.
DATA: B1(10) TYPE P VALUE '22' DECIMALS 5,
      C1(10) TYPE I VALUE '45'.
WRITE:/ B1,C1.

 

一般情況下type與like可以互用,區別是type后面可以接數據類型,like不可以,like后面需要接系統變量。

DATA: A11 TYPE AUFK-AUFNR VALUE '233333'.
DATA: B11 LIKE AUFK-AUFNR VALUE '333343'.
DATA: C11 LIKE I VALUE '3'. "會報錯:        字段 "I" 未知。它既不在其中一個指定表中,也沒有通過 "DATA"
WRITE:/ A11,B11.

 

 

常量定義使用 CONSTANTS
CONSTANTS<常量名>[<長度> ] TYPE <數據類型> VALUE <默認值>

CONSTANTS A111 TYPE P DECIMALS 3 VALUE '3'.
WRITE A111.

以下是常用的系統變量:
SY-SUBRC : 系統執行某指令后,表示執行成功與否的變量,'0' 表示成功
SY-UNAME: 當前使用者登入SAP的USERNAME;
SY-DATUM: 當前系統日期;
SY-UZEIT: 當前系統時間;
SY-TCODE: 當前執行程序的Transaction code
SY-INDEX : 當前LOOP循環過的次數
SY-TABIX: 當前處理的是internal table 的第幾筆
SY-MANDT: CLIENT(客戶端編號) NUMBER
SY-VLINE: 畫豎線
SY-ULINE: 畫橫線
系統變量的定義在結構SYST里

直接定義數據結構。

DATA :BEGIN OF F11,
  A123(10) TYPE C VALUE '222',
  A1233(10) TYPE C VALUE '333',
  A1234(10) TYPE C VALUE '444',
  END OF F11.

WRITE:/ F11-A123,F11-A1233,F11-A1234.
WRITE:/ F11.

結構繼承的使用

TYPES: BEGIN OF TY_DATA,
         a(10) TYPE C,
         b(10) TYPE C,
         c(10) TYPE C,
       END OF TY_DATA.
DATA :BEGIN OF F11,
        A123(10)  TYPE C VALUE '222',
        A1233(10) TYPE C VALUE '333',
        A1234(10) TYPE C VALUE '444',
      END OF F11.
DATA BEGIN OF F111.
INCLUDE TYPE ty_data."將結構類型包括進來,用於TYPES定義的
DATA END OF F111.
DATA: BEGIN OF F1111.
  INCLUDE STRUCTURE F11."將結構對象包括進來,用於data定義的
DATA: END OF F1111.

F111-A = '11122'.
F1111-A123 = '332'.

 


免責聲明!

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



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