ABAP 的 AT NEW 语法

AT NEW一般用在LOOP里面。

当我们在LOOP里面处理数据的时候,经常要执行的是当一个字段值改变了,然后我们怎么怎么做。这个就是要用AT NEW。其实有点像分组。

解释起来就是,我有一个内表itab里面有很多行数据,我现在一条一条的loop,当我里面要考虑的字段field的值变了,那这个AT NEW就被触发了。然后我就要执行一定的操作咯。在ENDAT之前。

就比如说咱处理销售订单表,按订单编号先来排个序之后。

SORT i_tab_VBAP by vbeln.
LOOP AT i_tab_VBAP.AT NEW vbeln.ENDAT.
ENDLOOP.

 其他类似的还有AT FIRST, AT  LAST, AT END OF。很明显的,咱能看出来,我们要去控制这些的字段值变化后的操作的话,首先得把内表按照这个字段来排序,要不然忙来忙去的,没意义。

AT FIRST就是处理遇到的第一个值。一般就是值处理这个分类组的第一个,也就是一般咱只要处理一次的状况。

SORT i_tab_VBAP by vbeln.
LOOP AT i_tab_VBAP.AT FIRST vbeln.WRITE: 'first number :", i_tab_VBAP-vbeln.ENDAT.
ENDLOOP.

 AT LAST也是一样的,最后一条的更改。

对于AT END OF,我们也来看一个例子:首先是按照werks工厂来排序内表,AT END OF意思是,当我的这条werks有更改了,也就是说可能1-5条工厂都是001,到第六条工厂变成002了,那我这个第五条就是end of werks了。我需要在到达这条时做些更改的。

REPORT z_at_end_of.TYPES: BEGIN OF ty_tab,werks TYPE mard-werks,matnr TYPE mard-matnr,lgort TYPE mard-lgort,END OF ty_tab.DATA: wtab TYPE ty_tab,itab TYPE TABLE OF ty_tab.START-OF-SELECTION.SELECT matnr werks lgort UP TO 30 ROWS FROM mard INTO CORRESPONDING FIELDS OF TABLE itab.SORT itab BY werks.WRITE: / 'Material Number', 20 'Plant', 27 'Storage Location'.ULINE.LOOP AT itab INTO wtab.WRITE: / wtab-matnr, 20 wtab-werks, 27 wtab-lgort.AT END OF werks.WRITE: '=== At End Of plant - triggers at line', sy-tabix.ENDAT.ENDLOOP.

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

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

相关文章

简单用Nodejs + express 编写接口

文章目录 get接口示范post接口示范注意点 准备工作可以看上一篇文章:文章链接》》 get接口示范 app.get(/, (req, res) > {res.send("Hello World"); })因为是get接口,所以可以直接在浏览器上请求(端口地址接口名)…

测开面经(Git经典题目,Git入门)

1. GitHub是什么 a. Git是一个分布式版本控制系统,作用是跟踪、管理和协调软件开发项目中的代码更改。 b. 提供了一种有效的方式来管理代码的版本历史,以及多人协作开发的能力。 2. Git的作用有哪些 a. 版本控制:Git可以记录每次代码更改的…

基于51单片机轮胎胎压监测系统—数码管显示

基于51单片机轮胎胎压监测系统 (仿真+程序+设计报告) 功能介绍 具体功能: 1.MPX4115压力传感器胎压检测; 2.ADC0832进行模数转换后,51单片机处理控制; 3.数码管显示胎压&#xff…

想要品牌传播有效,先清楚这三个本质问题

在互联网时代,企业想要提高市场竞争力就需要做好品牌传播。然而有许多企业在做品牌传播时都会踩坑,原因是因为忽视了这三点,接下来就让媒介盒子和大家分享: 一、 文案本质是“购买理由” 在文案技巧中经常会出现一些词&#xff…

1. TypeScript: JavaScript 的超集,为大型应用而生

引言 在现代的前端开发领域,JavaScript 无疑是一门极其流行的语言。然而,随着前端项目的日益复杂,JavaScript 本身的一些特性使得维护和扩展大型代码库变得困难。这就是 TypeScript 应运而生的背景。TypeScript 是一种由微软开发的开源语言&…

java中如何使用Rabbitmq?

1、添加相关的依赖 在Java中使用RabbitMQ,你需要先确保RabbitMQ服务器已经安装并运行在你的机器上或者某个服务器上。然后,你需要在Java项目中添加RabbitMQ的Java客户端库作为依赖。对于Maven项目,你可以在pom.xml文件中添加以下依赖&#x…

SSL的起源和发展史

随着网络技术的发展,当前各大浏览器厂商都对尚未使用SSL证书,切换到HTTPS的网站做了风险预警。SSL证书的如此重要,你了解SSL证书的诞生和发展史吗?跟随本文一起来了解SSL的前世今生。 SSL协议的诞生 Netscape(网景通…

uniapp 表单使用Uview校验 包括城市选择器

<view><!-- 注意&#xff0c;如果需要兼容微信小程序&#xff0c;最好通过setRules方法设置rules规则 --><u--form labelPosition"left" :model"model1" :rules"rules" ref"uForm" labelWidth"174"><u…

Python中csr_matrix的两种初始化方法

本文以csr_matrix为例来说明sparse矩阵的使用方法&#xff0c;其他类型的sparse矩阵可以参考https://docs.scipy.org/doc/scipy/reference/sparse.html csr_matrix是Compressed Sparse Row matrix的缩写组合&#xff0c;下面介绍其两种初始化方法 csr_matrix((data, (row_ind…

concat() 函数

concat(某一具体的值或数组对象) 作用&#xff1a;将括号里的内容连接在一起注意&#xff1a; &#xff08;1&#xff09;多个具体的值或数组对象用逗号隔开 &#xff08;2&#xff09;select 语句返回的结果也是个数组&#xff0c;所以 select 语句可以写在 concat 函数的括号…

【操作系统】-寄存器-具有记忆功能的元器件

为什么要使用寄存器 现代电子计算机用二进制来表示数字&#xff0c;人类发明了触发器&#xff0c;每个触发器可以保存1比特&#xff0c;为了保存一个较大的二进制数&#xff0c;组合一起就是新的元器件&#xff0c;称为寄存器&#xff08;register&#xff09;&#xff0c;或者…

Python读取文件里内容

如果要读取一个文件里的内容是 # 文件名&#xff1a;db.txt 1 2 3 4代码如下 import requests f open("db.txt", mode"rb") content f.read() f.close()data content.decode(utf-8)# 存到 list 里 data_list data.split(\r\n) print(data_list)# 结果…

Docker-部署、镜像容器管理、commit

安装部署 一、查询版本信息 命令说明docker version查看服务器与客户端版本docker info查看docker服务配置信息 二、安装部署 官网地址&#xff1a;Install Docker Engine | Docker Docs 1、卸载旧的版本 sudo yum remove docker \docker-client \docker-client-latest \…

MySQL-7.mysql约束

约束用于确保数据库中的数据满足特定的商业规则。 MySQL约束包含五种&#xff1a;not null、unique、primary key、foreign key、check 7.1 primary key 主键 字段名 字段类型 primary key 用于唯一的标识表的行数据&#xff0c;当定义主键约束后&#xff0c;该列不能重复。 pr…

力扣经典150题第九题:跳跃游戏

目录 1. 简介2. 问题描述3. 解题思路方法一&#xff1a;贪心算法 4. 算法实现方法一&#xff1a;贪心算法 5. 示例与测试6. 总结与展望7. 结语 1. 简介 本篇博客将讨论力扣经典150题中的跳跃游戏问题。给定一个非负整数数组 nums&#xff0c;数组中的每个元素代表在该位置可以…

perl 交叉编译

前言 Perl是一种高级、通用、解释型、动态的编程语言。Perl设计的初衷是为了更好地处理文本处理任务&#xff0c;但随着时间的发展&#xff0c;现在它已经变成了一种强大的一般目的编程语言。Perl支持面向过程和面向对象的编程风格。 Perl的特点&#xff1a; 强大的字符串处…

ROC与决策树介绍

ROC与决策树介绍 一、ROC介绍 ROC&#xff08;Receiver Operating Characteristic&#xff09;曲线&#xff0c;即受试者工作特征曲线&#xff0c;是一种用于评估二元分类器性能的工具。ROC曲线起源于信号检测理论&#xff0c;后来被广泛用于机器学习和统计学习中的分类问题。…

第十课 Excel

最上方标题栏&#xff1a; 显示共工作薄名称&#xff0c;如果显示兼容模式是没有办法使用高级功能的。分辨高版本和低版本可以通过后缀名进行分辨&#xff1b;显示xlsx就是高版本工作薄&#xff0c;如果显示xls的话就是低版本工作薄了。如果同事老板都使用的是低版本的话我们发…

VM-UNet: Vision Mamba UNet for Medical Image Segmentation

VM-UNet: Vision Mamba UNet for Medical Image Segmentation VM-UNet&#xff1a;基于视觉Mamba UNet架构的医学图像分割 论文链接&#xff1a;http://arxiv.org/abs/2402.02491 代码链接&#xff1a;https://github.com/JCruan519/VM-UNet 1、摘要 文中利用状态空间模型SS…

【攻防世界】Confusion1

php的标志是大象&#xff0c;Python的标志是蛇 。Python 的 Flask 框架( Flask 使用 Jinja2 作为模板引擎 ) 点进register.php 输入{{3*4}} 输入 {{config}} 也有回显&#xff0c;ssti 判断是否存在ssti注入&#xff1a; 1. {{8*8}} 2. {{config}} 过滤了关键字&#xff0…