• SAP abap 内表增加字段方法,结构复用


    1、include

    databegin of gth_qamr.
            include structure qamr.
    data: kurztext like qamv-kurztext,
          ztext like qamv-kurztext,
          verwmerkm like qamv-verwmerkm,
          steuerkz  like qamv-steuerkz.
    dataend of gth_qamr.
    data: gtd_qamr like table of gth_qamr.

    2、append

    结构复用:引用自江正军老师-博客园 博客链接:www.cnblogs.com/jiangzhengjun

    TYPES BEGIN OF struc_type
       TYPES comp ..
       TYPES comp TYPE struc_type BOXED"参照另一结构类型
       INCLUDE { {TYPE struc_type} | {STRUCTURE struc} } "将另一结构包括进来
            [AS name [RENAMING WITH SUFFIX suffix]]
    TYPES END OF struc_type.

    INCLUDE { {TYPE struc_type} | {STRUCTURE struc} } 
            [AS name [RENAMING WITH SUFFIX suffix]].

    该语句只能用在定义结构的BEGIN OF与 END OF之间。作用是将结构类型struc_type结构变量struc的所有组件字段拷贝到当前结构定义的指定位置,INCLUDE就是将可以重复使用的东西先做好,再包含进来。

    AS name:给包含进来的结构类型(或结构变量)取一个别名,这样就可以通过结构组件符(-)来选取这个结构类型(或结构变量)

    RENAMING WITH SUFFIX suffix:如果include进来的结构类型(或结构变量)的组件字段与现有的重复,则可以使用此选项重命名include进来的结构类型(或结构变量)的各组件字段名,具体做法只是在原来组件名后加上了指定的后缀suffix

    TYPESBEGIN OF t_day,
             work TYPE c LENGTH 8,
             free TYPE c LENGTH 16,
           END OF t_day.
    DATA BEGIN OF week.
            INCLUDE TYPE t_day AS monday    RENAMING WITH SUFFIX _mon.
            INCLUDE TYPE t_day AS tuesday   RENAMING WITH SUFFIX _tue.
            INCLUDE TYPE t_day AS wednesday RENAMING WITH SUFFIX _wed.

    ...

    DATA END OF week.

    可以通下面的方式来访问week结构变量:

    直接看作是week结构变量组件:week-work_mon, week-free_mon, week-work_tue

    由于使用as别名,所以还可以这样访问:week-monday-work, week-monday-free, week-tuesday-work

    当程序中多个结构使用共同的字段时,将公用的部分提取出来,使用INCLUDE将它们组装起来,编程结构更清晰。下面是结构对象的复用:

    DATABEGIN OF comm1 OCCURS 0,
          bukrs TYPE bseg-bukrs,
    END OF comm1.
    TYPES:BEGIN OF comm2,
          blart TYPE bkpf-blart,
    END OF comm2.
    DATABEGIN OF gt_result OCCURS 0,
            c1 TYPE c."直接定义组件字段,但前面语句后面使用逗号
            INCLUDE STRUCTURE comm1."直接将结构对象包括进来
            INCLUDE TYPE comm2."直接将结构类型包括进来
            DATA:comm LIKE comm1,"直接参照
            c2 TYPE c"直接定义组件字段,但前面语句后面使用逗号
    DATAEND OF gt_result.
    gt_result-bukrs '111'.
    gt_result-blart '222'.
    gt_result-comm-bukrs '333'.

    下面是类型的复用:

    TYPESBEGIN OF street_type,
             name TYPE c LENGTH 40,
             no   TYPE c LENGTH 4,
           END OF street_type.
    DATABEGIN OF comm1 OCCURS 0,
          bukrs TYPE bseg-bukrs,
    END OF comm1.
    TYPESBEGIN OF address_type,
            name1 TYPE c LENGTH 30."直接定义类型,但前面语句需使用逗号
            TYPES:street TYPE street_type,"参照另一结构类型
            TYPE c."直接定义类型,但前面语句需使用逗号
            INCLUDE STRUCTURE comm1.
            INCLUDE TYPE  street_type.
    TYPESEND OF address_type.

    *或者是这样

    TYPESBEGIN OF address_type,
            name1 TYPE c LENGTH 30,
            street TYPE street_type,
            TYPE c.
            INCLUDE STRUCTURE comm1.
            INCLUDE TYPE  street_type.
    TYPESEND OF address_type.
    DATA: name TYPE address_type-street-name.
    DATA: name2 TYPE address_type-name.
    DATA: bukrs TYPE address_type-bukrs.

     
    每天学习一个知识点,累积就是财富。
  • 相关阅读:
    爬虫前面
    常用模块学习
    函数、递归、内置函数
    迭代器、装饰器、软件开发规范
    python基础
    列表、字典、集合
    介绍、基本语法、流程控制
    python学习的第一个星期
    vmware使用nat连接配置
    Vue API 3模板语法 ,指令
  • 原文地址:https://www.cnblogs.com/buduzhiren/p/10683989.html
Copyright © 2020-2023  润新知