1. 结构体的定义
结构体可以包含多个基本类型,用DATA来定义结构体,语法如下 :
data : begin of <name>
<field1>…
<field2>…
end of <name>.
例如:
DATA:BEGIN OF USERINF,
SID(10) TYPE C, "编号
NAME(20) TYPE C, "姓名
TEL(20) TYPE C, "电话
END OF USERINF.
2. 结构体的赋值
2.1 在ABAP中可以对结构体直接赋值(赋值时必须定义具体字段名),相同结构体之间可以使用等号来实现数据的相互复制,例如:
DATA:BEGIN OF USERINF,
SID(10) TYPE C, "编号
NAME(20) TYPE C, "姓名
TEL(20) TYPE C, "电话
END OF USERINF.
DATA:USER2 LIKE USERINF.
USERINF-SID = 'A20130731'.
USERINF-NAME = 'SANLLY'.
USERINF-TEL = '0592'.
USER2 = USERINF.
WRITE:USER2,USERINF-SID.
输出结果:A20130731 SANLLY 0592 A20130731
2.2 相同结构体之前也可以命名用语句MOVE...TO进行赋值,对于类型存在差异的结构体可以使用语句MOVE-CORRESSPONDING将两者相同的字段自动匹配并赋值。语法如下:
MOVE...TO
MOVE-CORRESSPONDING
例如:
DATA:BEGIN OF USERINF,
SID(10) TYPE C, "编号
NAME(20) TYPE C, "姓名
TEL(20) TYPE C, "电话
END OF USERINF.
DATA:BEGIN OF USERDETALL,
SID(10) TYPE C, "编号
NAME(20) TYPE C, "姓名
ADD(20) TYPE C, "电话 END OF userdetall.
END OF USERDETALL.
MOVE-CORRESPONDING USERINF TO USERDETALL.
3.结构体的继承
定义结构体继承的具体语句为:INCLUDE STRUCTURE.
例如:
DATA:BEGIN OF EMPLOYEE.
INCLUDE STRUCTURE USERINF.
DATA:BIRDATE TYPE D,"出生日期
ADD(50) TYPE C,"地址
END OF EMPLOYEE. "结构体中新增birdate 、add字段