本文主要介绍一下SAP ABAP中的INCLUDE嵌套定义和类型组TYPE-POOL,类型组讲解主要包括了TYPE-POOL简介,TYPE-POOL的创建和使用以及常用TYPE-POOL的介绍
INCLUDE嵌套定义类型
INCLUDE嵌套定义简介
在SAP ABAP开发中,我们可以将之前自定义的数据类型嵌套进我们新创建的数据类型中。注意使用INCLUDE嵌套语句的时候前面必须要有语句【TYPES:BEGIN OF name】,结尾要使用语句【TYPES:END OF name】!
INCLUDE TYPE <type> [AS name [RENAMING WITH SUFFIX suffix]]. INCLUDE STRUCTURE <data> [AS name [RENAMING WITH SUFFIX suffix]].
INCLUDE TYPE
INCLUDE TYPE语法只能嵌套自定义的结构体类型,其余数据类型或者变量都是不符合语法的。
TYPES: BEGIN OF TY_STU, TY_STU_ID TYPE N LENGTH 8, TY_STU_NAME TYPE C LENGTH 10, END OF TY_STU. TYPES: BEGIN OF TY_TEA, TY_TEA_ID TYPE N LENGTH 8, TY_TEA_NAME TYPE C LENGTH 10, END OF TY_TEA. *嵌套结构体类型 TYPES BEGIN OF TY_CLASS. INCLUDE TYPE TY_STU. INCLUDE TYPE TY_TEA AS CLASS_1_TEA RENAMING WITH SUFFIX _CLASS_1, TYPES END OF TY_CLASS. DATA GV_CLASS TYPE TY_CLASS.
效果演示
上面给出了嵌套结构体类型定义结构体类型的代码示例,并且最后使用了【DATA】语句将结构体类型实例化并且加入断点进行观察,请读者仔细观察嵌套定义的效果演示和使用了[AS name [RENAMING WITH SUFFIX suffix]]语句和不使用的区别,具体效果如下图所示:
INCLUDE STRUCTURE
INCLUDE TYPE语法只能嵌套自定义的结构体变量,其余数据类型或者变量都是不符合语法的。
DATA: BEGIN OF TY_STU, TY_STU_ID TYPE N LENGTH 8, TY_STU_NAME TYPE C LENGTH 10, END OF TY_STU. DATA: BEGIN OF TY_TEA, TY_TEA_ID TYPE N LENGTH 8, TY_TEA_NAME TYPE C LENGTH 10, END OF TY_TEA. *嵌套结构体类型 TYPES BEGIN OF TY_CLASS. INCLUDE STRUCTURE TY_STU. INCLUDE STRUCTURE TY_TEA AS CLASS_1_TEA RENAMING WITH SUFFIX _CLASS_1. TYPES END OF TY_CLASS. DATA GV_CLASS TYPE TY_CLASS.
效果演示
上面给出了嵌套结构体变量定义结构体类型的代码示例,并且最后使用了【DATA】语句将结构体类型实例化并且加入断点进行观察,请读者仔细观察嵌套定义的效果演示和使用了[AS name [RENAMING WITH SUFFIX suffix]]语句和不使用的区别,具体效果如下图所示:
PS:关于变量【DATA】的讲解将在后续文章中讲解!!
TYPE-POOL简介
TYPE-POOL:在SAP ABAP中意味着类型组的意思。类型组是以INCLUDE技术为基础的,可以使用类型组将用户定义的数据类型或常量存储在ABAP/4词典中;也可以在组合多种数据类型进行声明事使用类型组,以便在程序之间使用。在ABAP开发中,通常给每个模块定义相应的类型组管理经常使用的数据类型,达到模块化编程效果,也可以更加方便管理和使用数据类型。
TYPE-POOL的创建和使用
T-CODE:SE11中创建
执行T-CODE:SE11,进入ABAP字典:初始屏幕,选择类型组,输入要定义的类型组名字(要以Z开头!),点击创建按钮,如下图所示:
维护简短描述
在短文本框中输入该类型组的简短描述后,单机保存按钮,如下图所示:
保存到包中
选择类型组要保存到的SAP包,或者直接保存到本地对象中,如下图所示:
源代码
创建类型组时自动生成第一行,第二行开始可以定义以类型组名字(本案例则为ZTYPL_)开头的类型以及常数,将定义类型的代码追加到类型组中去,如下图所示:
TYPE-POOL ZTYPL . TYPES:BEGIN OF ZTYPL_STU, ZSTU_ID TYPE N LENGTH 8, ZSTU_NAME TYPE C LENGTH 20, END OF ZTYPL_STU. TYPES:BEGIN OF ZTYPL_TEA, ZTEA_ID TYPE N LENGTH 8, ZTEA_NAME TYPE C LENGTH 20, END OF ZTYPL_TEA.
测试使用TYPE-POOL
TYPE-POOLS: ZTYPL. DATA:GV_STU TYPE ZTYPL_STU, GV_TEA TYPE ZTYPL_TEA. GV_STU-ZSTU_ID = 20212540. GV_STU-ZSTU_NAME = '张三'. GV_TEA-ZTEA_ID = 44001132. GV_TEA-ZTEA_NAME = '李四'. WRITE:GV_STU-ZSTU_ID,GV_STU-ZSTU_NAME,/, GV_TEA-ZTEA_ID,GV_TEA-ZTEA_NAME.
效果演示
常用TYPE-POOL
在ABAP ALV报表开发中,我们也经常会使用到SLIS类型组,如下图所示:
双击SLIS我们可以进入到SLIS类型组中的源代码进行查看: