结构体不属于数据字典对象,在程序运行时会被作为临时对象创建
1、结构体的定义
- 结构可以包含多个基本类型,使用 "DATA" 关键字来定义结构体
以 "BEGIN OF <结构体名>" 开始,"END OF <结构体名>" 结束
data: begin of userinf,
sid(10) type c,
name(20) type c,
tel(20) type c,
end of userinf.
date: user like userinf. "结构体可以直接参考已经定义的结构体,属性相同
2、结构体赋值
- 结构体可以直接赋值,相同结构体可以使用等号复制数据
"WRITE" 可以输出结构体中所有字段,
也可以使用 "<STRUCTURE>-<FIELD NAME>" 输出具体字段
userinf-sid = 'A00001'.
userinf-name = 'Amy'.
userinf-tel = '012-3456780'.
user = userinf.
write: user,
userinf-sid.
相同结构体之间也可以用 "MOVE...TO..." 赋值
存在差异的结构体,可以使用 "MOVE-CORRESPONDING...TO..." 自动匹配两个结构体中名字相同的字段进行赋值
data: begin of userdetail,
sid(10) type c,
name type c,
birdate type d,
add(50) type c,
end of userdetail.
move-corresponding userinf to userdetail.
结构体初始化用 "CLEAR" 关键字
clear userinf.
3、结构体继承
- 结构体继承可以参照某个已存在的结构体来创建一个属性相同的新结构体,并且可以在新的结构体中添加另外想要的字段
"INCLUDE STRUCTURE <已存在的结构体>"
data: begin of employee.
include structure userinf.
data: birdate type d,
add(50) type c,
end of employee. "结构体中新增 birdate、 add 两个字段
网友评论