• 结构体


    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字段

  • 相关阅读:
    Hitachi Programming Contest 2020 E Odd Sum Rectangle
    CF1060F Shrinking Tree
    UR #19
    AGC041F Histogram Rooks
    JOISC2020 Legendary Dango Maker
    Dinic 二分图匹配 / Hopcroft-Karp 算法 复杂度简单证明
    Codechef March Challenge 2020 Division 1 BREAK
    Tomorrow will be fine.
    JOISC2019 穿越时空 Bitaro
    POI2011 Periodicity
  • 原文地址:https://www.cnblogs.com/sanlly/p/3227094.html
Copyright © 2020-2023  润新知