zoukankan      html  css  js  c++  java
  • 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.

     
    每天学习一个知识点,累积就是财富。
  • 相关阅读:
    Biba模型简介
    Fragment 与 Activity 通信
    小米2S 连接Ubuntu Android Studio
    【转】Android 实现“再按一次退出程序”
    取消 EditText 自动聚焦弹出输入法界面
    为Android Studio 项目手动下载gradle
    【转】Java读取文件方法大全
    sudo: /etc/sudoers 的模式为 0551,应为 0440
    Win7 下硬盘安装Linux Mint 17
    Linux Versus Windows, Ubuntu/Mint V XP/Vista/7
  • 原文地址:https://www.cnblogs.com/buduzhiren/p/10683989.html
Copyright © 2011-2022 走看看