数据对象与数据类型

数据对象:

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

变量定义包含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里

直接定义数据结构。

扫描二维码关注公众号,回复: 5946220 查看本文章
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'.

猜你喜欢

转载自www.cnblogs.com/BruceKing/p/10736433.html