结构体
- 有结构的变量
- 程序中用DATA定义的局部变量,也可以使用types
语法:
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.
DATA USER2 LIKE USERINF.
结构体赋值
- 可对结构体直接赋值
- 相同结构体之间可以使用等号来实现数据的赋值
- WRITE Structure Name 可输出所有字段,或使用-输出指定字段
- 相同结构体之间使用Move…To…进行赋值;有差异的可使用MOVE-CORRESSPONDING匹配及赋值相同的字段
例子:
USERINF-SID = 'A001'. "USERINF已定义好的
USERINF-NAME = 'JE'.
USERINF-TEL = '10-123'.
USER2 - USERINF.
WRITE:USER2,/USERINF-SID.
DATA:BEGIN OF USERDETAIL,
SID(10) TYPE C,
NAME(20) TYPE C,
BIRDATE TYPE D,
ADD(50) TYPE C,
END OF USERDETAIL.
MOVE-CORRESSPONDING USERINF TO USERDETAIL.
结构体的继承
- 参考已存在的结构体创建一个属于相同的新结构体
- 可在新结构体中增加字段
- 定义语句:INCLUDE STRUCTURE
例子:
DATA:BEGIN OF EMPLOYEE.
INCLUDE STRUCTURE USERINF.
DATA:BIRTHDATE TYPE D,
ADD(50) TYPE C,
END OF EMPLOYEE.
MOVE-CORRESSPONDING USERINF TO USERDETAIL.