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
随机推荐
- Codeforces Round #599 (Div. 2)
久违的写篇博客吧 A. Maximum Square 题目链接:https://codeforces.com/contest/1243/problem/A 题意: 给定n个栅栏,对这n个栅栏进行任意排 ...
- ETL子系统
最近在看<Pentaho Kettle 解决方案>,看到 ETL子系统,发现信息量比较大,用简短的语句做一下笔记. ETL子系统有34种子系统,被分成4个部分:抽取.清洗和更正.发布.管理 ...
- C#程序编写高质量代码改善的157个建议【20-22】[泛型集合、选择集合、集合的安全]
建议20.使用泛型集合来替代非泛型集合 http://www.cnblogs.com/aehyok/p/3384637.html 这里有一篇文章,是我之前专门来介绍泛型的.我们应尽量的使用泛型集合.因 ...
- linux 动态链接库查找方法;查找动态链接库位置; LIBRARY_PATH 和 LD_LIBRARY_PATH 的区别;LD_LIBRARY_PATH and LD_RUN_PATH的区别;
今天配置之前项目的时候,发现有些动态链接库变了,想看看现在应用在使用哪些动态链接库的时候,进一步查了点资料: 下面针对linux动态链接库查找方法和动态链接库位置配置的过程进行记录: LIBRARY_ ...
- ubuntu下安装tomcat,shutdown时报错:./catalina.sh:1:eval:/home/xxx/jdk/jre/bin/java:not found
该问题可能导致tomcat启动成功了,但是浏览器输入http://127.0.0.1:8080无法显示tomcat的欢迎界面 打开Tomcat安装目录下的bin文件下的setclasspath.sh, ...
- C语言程序运行时的一些细节
本章可以看作是 <Unix 环境高级编程>Ch7 的笔记. C 程序运行的开始和结束 一个可以运行的 C 语言总要有一个 main 函数,main 函数现在的完整定义是 int main( ...
- java.sql.SQLException: Unknown initial character set index '255' received from server. Initial client character set can be forced via the 'characterEncoding' property.解决方案
解决方案: 首先查看数据库的版本号,删除旧的jar包,将mysql-connector-java.jar更换成对应版本号 同时在连接数据库的url后加上?useUnicode=true&cha ...
- HttpRunner学习3--extract提取数据和引用
前言 在HttpRunner中,我们要想从当前 HTTP 请求的响应结果中提取参数,可以通过 extract 关键字来实现. 本人环境:HttpRunner V1.5.8 测试场景 在这里,我将以一个 ...
- 【THUPC 2018】赛艇
Problem Description Lavender.Caryophyllus.Jasmine.Dianthus现在在玩一款名叫"赛艇"的游戏. 这个游戏的规则是这样的: 玩家 ...
- 挑选(pick)
挑选(pick) 1s/128MB [题目背景] NOIP2017 马上就要到了,丁爷爷想要从他的小朋友里挑选出一些厉害的来参加NOIP. [题目描述] 丁爷爷共有 n 个小朋友,按编号 1 . . ...