SAP开发 结构复用(Include)

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

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.

写法示例:

types:begin of ty_alv,
        status(4) type c,
        zpzbs(10) type c.
        include structure bapiret2.
types:end of ty_alv.


types:begin of ty_itab.
        include type ty_input.
types:pspnr like prps,
      end of ty_itab.

types:begin of ty_dis.
        include structure zztrd_fi_acc01.
types:xblnr_alt type bkpf-xblnr_alt,
      end of ty_dis.

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值