SAP_ABAP_编程基础_内表_创建内表 / 填充内表 / 读取内表 /修改和删除内表行 / 内表排序 / 创建顺序表 / 比较内表 / 初始化内表

news2025/1/13 13:41:26

SAP ABAP 顾问(开发工程师)能力模型_Terry谈企业数字化的博客-CSDN博客文章浏览阅读470次。目标:基于对SAP abap 顾问能力模型的梳理,给一年左右经验的abaper 快速成长为三年经验提供超级燃料!https://blog.csdn.net/java_zhong1990/article/details/132469977


平时在  ‘ 工地搬砖 ’,很少关注基础技能,闲来无事,拿起来复习一下  ! 

实际在项目中用到的非常之少,所以说学编程,先学框架,在学细节 !,因为细节太多,学不完 !


内表,或者叫内存表,或者说定义在内存里边的表,如果有做过JAVA的朋友们,可以把它理解成是,List ,ArrayList ,


也就是说,如何在内存表中做 CRUD , Abap编程中,有1/5的工作在做内存表的加工。


1 创建内表

TYPES: BEGIN OF <f> OCCURS <n>,
<component declaration>,               
..............
END OF <f>.
DATA: <itab> TYPE STANDARD OF <f>,
<wa> TYPE <f>.

2 填充内表

无关键字附加行:

APPEND [<wa> TO|INITIAL LINE TO] <itab>.

根据标准关键字附加行:

COLLECT [<wa> INTO] <itab>.

如果存在关键字相同的条目,COLLECT 语句不附加新行,
但将工作区域中数字字段的内容添加到现有条目中数字字段的内容中。

插入行:

INSERT [<wa> INTO|INITIAL LINE INTO] <itab> [INDEX <idx>].

附加内表行:

APPEND LINES OF <itab1> [FROM <n1>] [TO <n2>] TO <itab2>.

插入内表行:

INSERT LINES OF <itab1> [FROM <n1>] [TO <n2>] INTO <itab2> [INDEX <idx>].

复制内表:

MOVE <itab1> TO <itab2>.

<itab2> = <itab1>.


3 读取内表

逐行读取内表:

LOOP AT <itab> [INTO <wa>] [FROM <n1>] [TO <n2>] [WHERE <condition>].
.....
ENDLOOP.

用索引读取单行:

READ TABLE <itab> [INTO <wa>] INDEX <idx>.

读取自定义关键字的单行:

READ TABLE <itab> [INTO <wa>] WITH KEY <key> [BINARY SEARCH].

读取标准关键字的单行:

READ TABLE <itab> [INTO <wa>] [BINARY SEARCH].

二分法搜索:

READ TABLE <itab> .....BINARY SEARCH.

比较单行的内容:

READ TABLE <itab> [INTO <wa>] <key-option> COMPARING <fields>.

读取一行部分列内容:

READ TABLE <itab> [INTO <wa>] <key-option> TRANSPORTING <fields>.

确定内表属性:

DESCRIBE TABLE <itab> [LINES <lin>] [OCCURS <occ>].

如果使用 LINES 参数,则将填充行的数量写入变量<lin>。
如果使用 OCCURS 参数,则将行的初始号写入变量<occ>。

4 修改和删除内表行


用MODIFY更改行:

MODIFY <itab> [FROM <wa>] [INDEX <idx>].

用WRITE TO更改行:

WRITE <f>[+<o1>][(<l1>)] TO <itab>[+<o2>][(<l2>)] INDEX <idx>.

在循环中删除行:

DELETE <itab>.

用索引删除行:

DELETE <itab> INDEX <idx>.

删除邻近的重复条目:

DELETE ADJACENT DUPLICATE ENTRIES FROM <itab> [COMPARING <comp>].

删除选定行:

DELETE <itab> [FROM <n1>] [TO <n2>] [WHERE <condition>].


5 内表排序

SORT <itab> [<order>] [AS TEXT]
[BY <f1> [<order>] [AS TEXT] ... <fn> [<order>] [AS TEXT]].


6 创建顺序表

APPEND [<wa> TO] <itab> SORTED BY <f>.

AT <line>.
<statement block>
ENDAT.

<line>  FIRST
内表的第一行

<line> LAST
内表的最后一行

<line> NEW <f>
行组的开头,与字段<f>和<f>剩余字段中的内容相同

<line> END Of <f>
行组的结尾,与字段<f>和<f>剩余字段中的内容相同


7 初始化内表

REFRESH <itab>.  将内表重置为填充它以前的状态

CLEAR <itab>.如果使用没有表格工作区域的内表,可以使用 CLEAR 语句代替 REFRESH 语句

CLEAR <itab>[].要重置整个内表而不清除表格工作区域,内表名称之后的方括号指内表体。

FREE <itab>. 使用 REFRESH 或 CLEAR 初始化内表后,系统保持在内存中保留的空间。
可以用 FREE 语句释放内存。(在做性能优化的时候 ,用 FREE 掉内存 )

... <itab> IS INITIAL ... 检查内表是否为空


8 比较内表

可以将内表用做逻辑表达式的操作数:
.... <itab1><operator><itab2> ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1274411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pandas进阶:transform 数据转换的常用技巧

引言 本次给大家介绍一个功能超强的数据处理函数transform&#xff0c;相信很多朋友也用过&#xff0c;这里再次进行详细分享下。 transform有4个比较常用的功能&#xff0c;总结如下&#xff1a; 转换数值 合并分组结果 过滤数据 结合分组处理缺失值 一. 转换数值 pd.…

观海微电子---AF、AG、AR 的差别和作用

一、名称解释及原理 1.AF ---- Anti-fingerprint&#xff0c;中文为抗指纹。一般 SiO2AF 材料&#xff08;DON&#xff0c;M4、道康宁 AF 材料&#xff09;&#xff0c;一般采用真空蒸发镀膜法。 原理&#xff1a;AF 防污防指纹玻璃是根据荷叶原理&#xff0c;在玻璃外表面涂制…

⭐ Unity + ARKIT ARFace脸部追踪

相比之前的图像物体检测&#xff0c;这脸部检测实现起来会更加的简单。 &#xff08;1&#xff09;首先我们先在场景中的物体上添加一个AR Face Mananger组件&#xff1a; &#xff08;2&#xff09;以上組件的 Face Prefab所代表的就是脸部的模型也就是覆盖在脸部上面的投影模…

单片机怎么实现真正的多线程?

单片机怎么实现真正的多线程? 不考虑多核情况时&#xff0c;CPU在一个时间点只能做一件事&#xff0c;因为切换的速度快所以看起来好像是同时执行多个线程而已。 实际上就是用定时器来做时基&#xff0c;以时间片的方式分别执行来实现的&#xff0c;只不过实现起来细节比较复…

代码级接口测试与单元测试的区别

关于接口测试 接口测试是一个比较宽泛的概念, 近几年在国内受到很多企业和测试从业者的追捧, 尤其是上层的UI在取悦用户的过程中迭代更新加快, UI自动化维护成本急剧上升的时代, 大家便转向了绕过前端的接口层面进行测试. 但是很多人, 对接口测试的理解并不完整, 事实上, 我们…

Django 用户验证与权限管理详解

概要 Django是一款强大且灵活的Python Web框架&#xff0c;不仅在构建功能复杂的网站应用中表现出色&#xff0c;还在诸如用户验证、权限管理等细微之处提供了优秀的解决方案。在多用户、权限复杂的Web应用中&#xff0c;认证和权限管理尤其重要。接下来&#xff0c;我们就来探…

五、Linux基础软件安装

目录 1、安装JDK 2、安装Mysql 接下来&#xff0c;我们来学习如何在linux上安装JDK和Mysql&#xff0c;安装之前需要在Linux上提前创建三个目录: mkdir -p /export/software #软件包存放目录 mkdir -p /export/server #安装目录 mkdir -p /export/data #数据存放目录…

【Windows】解决Windows11错误0x80190001

1. 安装Fiddler网络调试工具 下载链接&#xff1a;Fiddler Classic 注&#xff1a;获取安装包的过程中可能要获取邮箱信息&#xff0c;但不用验证邮箱&#xff0c;大概是给你的邮箱发广告信息&#xff0c;问题不大。 在“开始”界面找到Fiddler Classic&#xff0c;点击运行…

封装flutter webview页面

例如在flutter里面跳转百度页面 需要安装webview_flutter webview_page.dart import package:flutter/material.dart; import package:webview_flutter/webview_flutter.dart;class MyWebView extends StatefulWidget {const MyWebView({super.key, required this.webViewUrl,…

入门Python+Vue 全栈开发可视化BI数据项目几个要点总结

随着数据的快速增长和业务的复杂性&#xff0c;越来越多的企业开始关注数据分析和可视化。在本文中&#xff0c;我们将介绍如何使用Python和Vue进行全栈开发&#xff0c;构建一个可视化BI数据项目&#xff0c;并总结几个关键要点。 首先&#xff0c;Python是一种强大而灵活的编…

【JAVA面向对象编程】--- 探索子类如何继承父类

&#x1f308;个人主页: Aileen_0v0&#x1f525;学习专栏: Java学习系列专栏 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 继承 继承的普通成员方法调用 及 普通成员变量修改 构造方法的调用 子类构造方法 继承 package Inherit;class Animal …

企业软件的分类|app小程序网站定制开发

企业软件的分类|app小程序网站定制开发 企业软件是指为满足企业管理和运营需求而设计和开发的一类软件&#xff0c;它通常用于支持企业的各项业务活动和流程。根据其功能和应用领域的不同&#xff0c;可以将企业软件分为以下几类。 1. 企业资源计划&#xff08;ERP&#xff09…

rest_framework_django 学习笔记二(视图路由)

rest_framework_django 学习笔记二&#xff08;视图路由&#xff09; rest_framwork_django学习笔记一(序列化器) 一、rest framework 中Request 与 Response 1、Request REST framework 传入视图的request对象不再是Django默认的HttpRequest对象&#xff0c;二是REST Fame…

git解决冲突

记录一次 git 解决冲突的过程。 情况是前一段时间我基于本地的 master 分支上新建了一个分支比如叫做 weight_linear: git checkout -b weight_linear 然后我已经在这个分支上进行了修改并上传到 github 上了&#xff0c;比如&#xff1a; git add . git commit -m "u…

uc_09_创建新进程 exec() system()

1 什么是创建新进程(夺舍) 在前面文章中&#xff0c;我们学习了fork()函数用来创建子进程。 子进程是父进程的副本&#xff0c;复制父进程除代码段以外的其他数据&#xff0c;代码段数据和父进程共享。 子进程的PID与父进程不同&#xff1a; 而创建新进程则不同。 与fork()不同…

传统算法: Pygame 实现深度优先搜索(DFS)

使用 Pygame 模块实现了深度优先搜索(DFS)的动画演示。首先,它通过邻接矩阵表示了一个图的结构,其中每个节点表示一个字符,每个字符的邻居表示与之相邻的节点。然后,通过深度优先搜索算法递归地访问所有节点,过程中通过动画效果可视化每一步的变化。每次访问一个节点,该…

数据爬虫(JSON格式)数据地图可视化(pyecharts)【步骤清晰,一看就懂】

一、前言 数据存储在网页上&#xff0c;需要爬取数据下来&#xff0c;数据存储格式是JSON&#xff0c;数据可视化在工作中也变得日益重要&#xff0c;接下来将数据爬虫与数据可视化结合起来&#xff0c;做个案例 注&#xff1a;当时数据是22年1月29日爬取数据 二、使用步骤 …

嵌入式数据传输及存储的C语言实现

各种类型的数据传输和存储就涉及到大小端的问题&#xff0c;首先要简单说下芯片的大小端问题&#xff0c;这里主要讨论Cortex-M内核。 M内核支持大端或者小端&#xff0c;实际应用中大部分内核都是小端。以STM32为例&#xff0c;全部都是小端&#xff0c;而且是芯片设计之初就固…

TR转发路由器测评—云企业网实现跨地域跨VPC的网络互通测评实战【阿里云产品测评】

文章目录 一.转发路由器 Transit Router 测评1.1 准备阶段1.2 本文测评收获1.3 什么是云企业网实例、转发路由器实例和云数据传输服务 二.使用云企业网实现跨地域跨VPC的网络互通2.2 **测试连通性**2.3 网络拓扑如下&#xff1a; 心得&#xff1a;总结&#xff1a; 声明&#x…

Vue+SpringBoot解决session跨域问题

做了一个前后端分离&#xff0c;因为前后端的 session id不一致&#xff0c;导致前端请求时&#xff0c;后端的session读取不到对应的值&#xff0c;造成登录问题。 解决方法&#xff1a; SpringBoot项目: 添加一个跨域配置 代码如下: 或者controller使用CrossOrigin Conf…