专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > SAP

[SAP ABAP开发技术小结]结构复用(INCLUDE)

发布时间:2010-06-06 17:05:09 文章来源:www.iduyao.cn 采编人员:星星草
[SAP ABAP开发技术总结]结构复用(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将它们组装起来,编程结构更清晰。下面是结构对象的复用:

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.

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • :安装MINI SAP失败

    求救:安装MINI SAP失败! 如题。 怎么办啊? 安装之前已经把SQL2000 2005 VS.NET05 08全都卸载了的。 安装CD1的时候就开始报错...

  • 哪位高手有abap eclipse editor

    谁有abap eclipse editor? 那位哥们有,可以进行资料交换。 ------解决方案-------------------- 这个现在只支持460,好像不支持640...

  • ,关于t-code:sgen的有关问题!

    求助,关于t-code:sgen的问题!急~~~ 昨天刚把sap ecc6装好了 。为了能够快速运行,事先准备用sgen编译一下 非常郁闷的是,在还没有开始...

  • sql查询语句中WHERE条件后面AND的个数解决方案

    sql查询语句中WHERE条件后面AND的个数 sql查询语句中WHERE条件后面AND的个数有没有限制啊! ------解决方案-------------------- ...

  • SAP模块,学哪个模块未来发展比较顺利

    【求助】SAP模块,学哪个模块未来发展比较顺利? 各位大侠,我是SAP新人。最近公司在培训,3周培训后要我们从PS,FI,CO,MM等中选择一个模...

  • 站在十字路口,该怎么处理

    站在十字路口 本人在一个快消公司做IT程序员,主要负责内部系统开发、报表开发、数据库维护等工作。现在公司要上SAP了,我也有幸参与...

  • alv field 是否可以进行日期选择解决方法

    alv field 是否可以进行日期选择 哪位达人知道怎么在ALV报表中实现 日期的选择,就像调整系统日期一样,不用手动收入 ------解决方...

  • 在sap中怎样获取字段所属的表解决思路

    在sap中怎样获取字段所属的表 小弟是SAP初学者,在这里遇到一个问题,由于对sap内部表结构不是很了解,现在要根据一些字段获取所属的表...

  • ABAP list report 输出有关问题

    ABAP list report 输出问题 小弟初学ABAP,苦难重重,望大侠门指点。两个问题: 第一,我做了一个list report,输出deliveray item 和invoi...

  • 在SAP中如何截取字符串

    在SAP中怎么截取字符串 在SAP中怎么截取字符串 比如 DATA:STR(10) LIKE C VALUE '1234567890', STR1(4) LIKE C. 我要取...

热门推荐: