结构体

1. 结构体的定义

结构体可以包含多个基本类型,用DATA来定义结构体,语法如下 :

          data : begin of <name>

                    <field1>…

                    <field2>…

           end of <name>.

例如:
DATA:BEGIN OF USERINF,
     SID(10)  TYPE C,  "编号
     NAME(20TYPE C,  "姓名
     TEL(20)  TYPE C,  "电话
END OF USERINF.


2. 结构体的赋值

    2.1 在ABAP中可以对结构体直接赋值(赋值时必须定义具体字段名),相同结构体之间可以使用等号来实现数据的相互复制,例如:

DATA:BEGIN OF USERINF,
     SID(10)  TYPE C,  "编号
     NAME(20TYPE 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(20TYPE C,  "姓名
     TEL(20)  TYPE C,  "电话
END OF USERINF.

DATA:BEGIN OF USERDETALL,
     SID(10)  TYPE C,  "编号
     NAME(20TYPE 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(50TYPE C,"地址
END OF EMPLOYEE.    "结构体中新增birdate 、add字段

原文地址:https://www.cnblogs.com/sanlly/p/3227094.html