ABAP - AT END OF 的使用
TYPES: begin of ty_tab ,
num() type i,
str() type c,
end of ty_tab.
data: gw_tab TYPE ty_tab ,
gt_tab TYPE TABLE OF ty_tab WITH HEADER LINE.
data: gt_out TYPE TABLE OF ty_tab,
gw_out TYPE ty_tab.
gw_tab-num = .
gw_tab-str = 'AAA'.
append gw_tab to gt_tab.
gw_tab-num = .
gw_tab-str = 'BBB'.
append gw_tab to gt_tab.
gw_tab-num = .
gw_tab-str = 'AAA'.
append gw_tab to gt_tab.
gw_tab-num = .
gw_tab-str = 'BBB'.
append gw_tab to gt_tab.
gw_tab-num = .
gw_tab-str = 'CCC'.
append gw_tab to gt_tab.
CLEAR gw_tab.
sort gt_tab by num.
loop at gt_tab .
MOVE gt_tab to gw_tab."这个转移很重要
at END OF num.
gw_out-num = gw_tab-num.
gw_out-str = gw_tab-str.
APPEND gw_out to gt_out.
endat.
CLEAR gw_tab.
endloop.
LOOP AT gt_out into gw_out.
write:/ gw_out-num,gw_out-str.
ENDLOOP.
使用AT END OF语句,主要是抓取重复字段如num为100的最后一条记录 100 BBB。
本实例定义的structure中 ,字段num在字段str前,这样在使用AT END OF语句后,内表中str会变为***。
在loop循环之前 内表gt_tab中的数据为:
100 AAA
100 BBB
200 AAA
200 BBB
200 CCC
第一次循环,内表gt_tab中的数据为 100 AAA 在执行AT END OF语句后,内表gt_tab中的数据为 100 AAA
第二次循环,内表gt_tab中的数据为 100 BBB 在执行AT END OF语句中,内表gt_tab中的数据为 100 ***,在执行AT END OF语句后,内表gt_tab中的数据为 100 BBB
第三次循环,内表gt_tab中的数据为 200 AAA 在执行AT END OF语句后,内表gt_tab中的数据为 200 AAA
第四次循环,内表gt_tab中的数据为 200 BBB 在执行AT END OF语句后,内表gt_tab中的数据为 200 BBB
第五次循环,内表gt_tab中的数据为 200 CCC 在执行AT END OF语句中,内表gt_tab中的数据为 200 ***,在执行AT END OF语句后,内表gt_tab中的数据为 200 CCC
为了得到我们想要的重复数据的最后一条,需要将内表的数据在执行AT END OF语句前,转移到另一个工作区gw_tab中保存,否则想要的数据中str均为***。
最后得到的数据为:
100 BBB
200 CCC
另外,同理 AT NEW 语句的使用 ,也是如此,本实例将AT END OF num,改为AT NEW num后,最后的结果为:
100 AAA
200 AAA
转自:https://www.cnblogs.com/Sapbruce/p/4155764.html
ABAP - AT END OF 的使用的更多相关文章
- ABAP单元测试最佳实践
本文包含了我在开发项目中经历过的实用的ABAP单元测试指导方针.我把它们安排成为问答的风格,欢迎任何人添加更多的Q&A's,以完成这个列表. 在我的项目中,只使用传统的ABAP report. ...
- ABAP实现屏幕自己刷新和跳转功能
ABAP开发工程中,有时候需要让跳转出的屏幕自动实现跳转和刷新的功能,该功能的实现需要在屏幕PBO 里面调用相应的事件执行. 关键代码为: SET TITLEBAR ' 屏幕自动程序'. IF g_c ...
- 一步步实现ABAP后台导入EXCEL到数据库【3】
在一步步实现ABAP后台导入EXCEL到数据库[2]里,我们已经实现计划后台作业将数据导入数据库的功能.但是,这只是针对一个简单的自定义结构的导入程序.在实践应用中,面对不同的表.不同的导入文件,我们 ...
- 一步步实现ABAP后台导入EXCEL到数据库【2】
前文:http://www.cnblogs.com/hhelibeb/p/5912330.html 既然后台作业只能在应用服务器运行,那么,我们可以先将要上传的数据保存在应用服务器中,之后再以后台作业 ...
- 让ABAP开发者愈加轻松的若干快捷键
引言 ABAP是一种和当代编程语言在许多方面有着相当不同的编程语言.ABAP的某些方面可能会让我们奇怪,为什么它会如此复杂?而它的某些方面又是那么杰出,给予了ABAP开发者们比其它任何语言更多的便利. ...
- ABAP游标的使用
在Oracle,SQLServer中游标的使用是经常的,所以在ABAP不懂是不行的...... 1.声明游标 OPEN CURSOR [WITH HOLD] <c> FOR SEL ...
- 一步步实现ABAP后台导入EXCEL到数据库【1】
在SAP的应用当中,导入.导出EXCEL文件的情况是一个常见的需求,有时候用户需要将大量数据定期导入到SAP的数据库中.这种情况下,使用导入程序在前台导入可能要花费不少的时间,如果能安排导入程序为后台 ...
- ABAP关键字SUBMIT的简单例子和学习小记
网上有关SUBMIT实现程序调用的例子稍显复杂,而相关的参考和解释则不是很完善.本文给出一个SUBMIT的小示例程序(代码见文末),实现了最简单的程序间调用及返回值,以及SAP官方文档中相关内容的翻译 ...
- ABAP 常见查询问题解决方法
在ABAP 编程的时候会遇到查询单条语句的时候数能取对 但是条目数多了的话 会出现数不准确的问题 原因可能出现在查询使用了二分法查询方式 二分法查询下必须按排序的字段排序 还得按照排序的字段 ...
- SAP ABAP学习路线图--标准教程
SAP ABAP学习路线图--标准教程 摘自:http://www.cnblogs.com/clsoho/archive/2010/07/05/1771400.html
随机推荐
- 【玩转SpringBoot】让错误处理重新由web服务器接管
其实web服务器是会处理错误的 在web.xml还是随处可见的年代时(确实有点老黄历了),下面的这些配置应该都不陌生. 根据错误代码处理错误,如下图01: 根据异常类型处理错误,如下图02: 不过我们 ...
- HttpRunner学习7--引用CSV文件数据
前言 在之前的文章中,我们已经学习了 parameters 参数化,是在测试脚本中直接指定参数列表.这种方法简单易用,但如果我们的参数列表数据比较多,这种方法可能就不太适合了. 当数据量比较大的时候, ...
- 开源框架 openFrameworks
转自:https://www.cnblogs.com/lidabo/p/9134174.html 此处仅供学习,版权属原作者: 作为一个图形图像方向的研究生,我经常都在和 OpenGL .OpenCV ...
- Glide只播放一次Gif以及监听播放完成的实现方案
需求: 近段时间正好有一个需求,是要实现Gif图只加载播放一次,并且要在Gif播放完毕后回调给系统的需求. 因为Glide 3系列的API与4系列还是有很大差距的,这里我们针对Glide 3.x和Gl ...
- Hook Java API以获得MD5加密前数据
Java实现MD5加密 在Java中,我们用MD5对数据进行加密,代码大概是这样的: import java.security.MessageDigest; import java.security. ...
- feign使用hystrix熔断的配置
熔断器hystrix 在分布式系统中,每个服务都可能会调用很多其他服务,被调用的那些服务就是依赖服务,有的时候某些依赖服务出现故障也是很正常的. Hystrix 可以让我们在分布式系统中对服务间的调用 ...
- 利用openssl自建CA体系
使用 OpenSSL 创建私有 CA:1 根证书 使用 OpenSSL 创建私有 CA:2 中间证书 使用 OpenSSL 创建私有 CA:3 用户证书 今天跟着上面的三部曲,做了一下openssl的 ...
- C language bit byte and word
bit:The smallest storage unit of a computer byte:Common computer storage unit word:Computer natural ...
- CMake指南
版权申明: 本文原创首发于以下网站,您可以自由转载,但必须加入完整的版权声明 博客园:https://www.cnblogs.com/MogooStudio/ csdn博客:https://blog. ...
- centos安装Redis和设置远程访问
记录下步骤以后用到时翻一翻. 一.下载官方的文件包和编译 在centos下载依赖库: yum install gcc tcl 在redis官网的下载页面,这里可以选择离线包或在线下载. 我选择在线的, ...