1、include

data: begin of gth_qamr.
        include structure qamr.
data: kurztext like qamv-kurztext,
      ztext like qamv-kurztext,
      verwmerkm like qamv-verwmerkm,
      steuerkz  like qamv-steuerkz.
data: end 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

TYPES: BEGIN 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将它们组装起来,编程结构更清晰。下面是结构对象的复用:

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

下面是类型的复用:

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

*或者是这样

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

 

SAP abap 内表增加字段方法,结构复用的更多相关文章

  1. 七十一、SAP中内表的修改,改一行数据,或一行的某个字段

    一.SAP中内表的修改,只能通过工作区来修改,代码如下 二.效果如下

  2. ABAP 内表 详解

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. Abap 内表的语法

    ABAP中的内表相当于其他程序设计语言中的二维数组,存储多行结构相同的数据 不同于二维数组,内表在创建后,列结构与列数是固定不变的,而行数是动态增长的  内表支持循环对每行数据进行操作,也支持整体操作 ...

  4. oracle删除表字段和oracle表增加字段

    这篇文章主要介绍了oracle表增加字段.删除表字段修改表字段的使用方法,大家参考使用吧   添加字段的语法:alter table tablename add (column datatype [d ...

  5. MySQL中大数据表增加字段,增加索引实现

    MySQL中大数据表增加字段,通过增加索引实现 普通的添加字段sql ALTER TABLE `table_name` ADD COLUMN `num` int(10) NOT NULL DEFAUL ...

  6. 【转载】ABAP-如何读取内表的字段名称

    原文地址:ABAP-如何读取内表的字段名称   *&---------------------------------------------------------------------* ...

  7. Abap内表

    什么是内表:内表是内存中建立的一个临时表,你可以在程序运行时对表中的数据进行,插入,修改,删除等操作,程序跑完了,就会被释放. 定义类型:通过types开头定义 TYPES: BEGIN OF lin ...

  8. MySQL 给已存在的数据表 增加字段和注释

    MySQL 给已存在的数据表 增加字段和注释 问题描述 在开发一个系统的过程中,经常会遇到随着系统服务功能的扩展,或者服务之间的关联,需要适当的修改原有的表结构,比如,增加一些必要的字段. 示例:在已 ...

  9. 家长-Parents表增加字段Token,Gender,Email,Portrait

    家长-Parents表增加字段Token,Gender,Email,Portrait ) ) ) )

随机推荐

  1. robot 中文 乱码 问题 的处理

    第一种方式: def unic(item):  if isinstance(item, unicode):      return item  if isinstance(item, (bytes, ...

  2. Jmeter-----图形扩展监控

    Jmeter----图形扩展监控 监听器中插件安装成功如下图: 安装步骤: 1.  下载JMeterPlugins-Extras与JMeterPlugins-Standard,解压缩后在他们各自的\l ...

  3. 如何把原生小程序项目合并的mpvue项目中

    当时的情景是这样的: 使用mpvue写微信小程序,写着写着项目写到一半了,突然间不想这样继续写了,想切换回原生小程序语法去写剩余部分. 如下图,红色框里的功能是已经用mpvue完成的功能,绿色框部分的 ...

  4. /etc/inittab文件详解

    /etc/inittab由/sbin/init程序解析调用,用于系统初始化,/sbin/init可参考源码busybox中init.c的实现方式. 原址如下: http://leejia.blog.5 ...

  5. python 去掉重复元素 学到再添加

    1. python 内置函数 set(可迭代对象) 返回无重复元素的集合.如在分类中,classification为类别数组 set(classification)为类别数 2.numpy np.un ...

  6. python中字符串的拼接

    1.+ 号 2.format() 3.f"{username}登录成功" 4.%s 5.列表中的 join 6.逗号 http://www.cnblogs.com/gengcx/p ...

  7. python基础-->流程控制-->分支结构-->单项分支-->双向分支

    # ###流程控制 ''' 流程:代码执行过程 流程控制:对代码执行过程的管控 顺序结构:代码默认从上到下依次执行 分支结构:对代码执行过程的管控 循环机构: while for ..in.... 分 ...

  8. 实验一 C运行环境与最简单程序设计

    #include<stdio.h> int main(){ int a,b,sum; a=123; b=456; sum=a+b; printf("sum is %d\n&quo ...

  9. Asp.net(C#)年月日时分秒毫秒

    年月日时分秒毫秒格式:yyyyMMddHHmmssfff

  10. [macOS] Mojave10.14 夜神安卓模拟器启动问题

    废话不多说,其它的都有在这里讨论: https://bbs.yeshen.com/forum.php?mod=viewthread&tid=8566 我的最终解决办法是,virtualbox安 ...