SAP ABAP——数据类型(三)【TYPE-POOL和INCLUDE嵌套定义类型】

news/2024/10/18 1:39:00/

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。


💅文章概要:本文主要介绍一下SAP ABAP中的INCLUDE嵌套定义和类型组TYPE-POOL,类型组讲解主要包括了TYPE-POOL简介,TYPE-POOL的创建和使用以及常用TYPE-POOL的介绍。


🤟每日一言:宝剑锋从磨砺出,梅花香自苦寒来。

目录

INCLUDE嵌套简介

INCLUDE TYPE

效果演示

INCLUDE STRUCTURE

效果演示

TYPE-POOL简介

TYPE-POOL的创建和使用

T-CODE:SE11中创建

维护简短描述

保存到包中

源代码

测试使用TYPE-POOL

效果演示

常用TYPE-POOL


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开头!),点击创建按钮,如下图所示:

T-CODE:SE11中创建


维护简短描述

          在短文本框中输入该类型组的简短描述后,单机保存按钮,如下图所示:

维护简短描述


保存到包中

          选择类型组要保存到的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我们可以进入到SLIS类型组中的源代码进行查看:

SLIS源代码查看


http://www.ppmy.cn/news/771.html

相关文章

AI 作画领域中的“神笔马良”是怎样炼成的?

本文由行者AI携手亚马逊云科技共同推出 刷爆朋友圈的 AIGC 是什么&#xff1f; AI Generated Content (AIGC&#xff0c;利用人工智能技术来生成内容)&#xff0c;是继专业生产内容&#xff08;PGC, Professional-generated Content&#xff09;、用户生产内容&#xff08;UGC…

构建curl 静态库 vs2012win7可用

https://www.youtube.com/watch?appdesktop&vq_mXVZ6VJs4

线程的状态

目录 1.线程的几种状态 2.TERMINATED状态 3.获取线程的状态 4.线程存在的意义 1.线程的几种状态 (1) NEW : 线程对象已经存在,但是线程没有启动 (2) RUNNABLE : 线程正在CPU上运行,或者可以在CPU上运行(就绪状态) (3) TIME_WAITING : 线程当前处于堵塞状态.(wait/join) …

四嗪-五聚乙二醇-羧基,1682653-79-7,Tetrazine-PEG5-COOH 水溶性和稳定性怎么样?

●中文名&#xff1a;四嗪-五聚乙二醇-羧基 ●英文&#xff1a;Tetrazine-PEG5-COOH ●外观以及性质&#xff1a;Tetrazine-PEG5-COOH为红色固体&#xff0c;四嗪目前被广泛应用于蛋白质特定位点功能阐释、亚细胞结构选择性标记。四嗪PEG衍生物用于与 TCO&#xff08;反式环辛烯…

网页大作业代码自取

&#x1f468;‍&#x1f393;静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计&#x1f469;‍&#x1f393;,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等&#xff0c;用的最多的还是DW&#xff0c;当然不同软件写出的…

详解设计模式:享元模式

享元模式&#xff08;Flyweight Pattern&#xff09;&#xff0c;是对象池的一种体现&#xff0c;也是 GoF 的 23 种设计模式中的一种结构型设计模式。 享元模式 主要用于减少创建对象的数量&#xff0c;以减少内存占用和提高性能。它提供了减少对象数量从而改善应用所需的对象…

「PAT乙级真题解析」Basic Level 1101 B是A的多少倍 (问题分析+完整步骤+伪代码描述+提交通过代码)

乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。 PAT (Basic Level) Practice 1101 B是A的多少倍 问题分析 题设明确要求按照其给定的步骤变换给定的正整数, 然后输出变换后的正整数是输入正整数的多少倍。 所…

LeetCode 刷题系列 -- 1425. 带限制的子序列和

给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回 非空 子序列元素和的最大值&#xff0c;子序列需要满足&#xff1a;子序列中每两个 相邻 的整数 nums[i] 和 nums[j] &#xff0c;它们在原数组中的下标 i 和 j 满足 i < j 且 j - i < k 。 数组的子序列定义为…