先看标准的语法:

ON CHANGE OF dobj [OR dobj1 [OR dobj2] ... ].
  statement_block1
[ELSE.
  statement_block2]
ENDON.

Effect

The statements ON CHANGE OF and ENDON, which are forbidden in classes, define a control structure that can contain two statement blocks:statement_block1 and statement_block2. AfterON CHANGE OF, any number of data objects dobj1, dobj2... of any data type can be added, linked byOR.

The first time a statement ON CHANGE OF is executed, the first statement blockstatement_block1 is executed if at least one of the specified data objects is not initial. The first statement block is executed for each additional execution of the same statementON CHANGE OF, if the content of one of the specified data objects has been changed since the last time the statementON CHANGE OF was executed. The optional second statement blockstatement_block2 after ELSE is executed if the first statement block is not executed.

For each time the statement ON CHANGE OF is executed, the content of all the specified data objects is saved as an auxiliary variable internally in the global system. The auxiliary variable is linked to this statement and cannot be accessed in the program. The auxiliary variables and their contents are retained longer than the lifetime of procedures. An auxiliary variable of this type can only be initialized if its statementON CHANGE OF is executed while the associated data object is initial.

Note

This control structure is particularly prone to errors and should be replaced by branches with explicitly declared auxiliary variables.

例子:

DATA : BEGIN OF TAB OCCURS 0,
         ID   TYPE CHAR01,
         NAME TYPE CHAR10,
       END OF TAB.

DATA  : NUM TYPE I.

TAB-ID = '1'. TAB-NAME = 'A001'. APPEND TAB.
TAB-ID = '1'. TAB-NAME = 'A002'. APPEND TAB.
TAB-ID = '2'.  TAB-NAME = 'A002'. APPEND TAB.
TAB-ID = '2'.  TAB-NAME = 'A002'. APPEND TAB.

NUM = 0 .
LOOP AT TAB.
  ON CHANGE OF TAB-ID  .
    NUM = NUM + 1.
  ENDON.
ENDLOOP.

WRITE : / NUM.

NUM = 0 .
LOOP AT TAB.
  ON CHANGE OF TAB-ID OR TAB-NAME.
    NUM = NUM + 1.
  ENDON.
ENDLOOP.
WRITE : / NUM.

结果:

用途:

对于内表判断的操作尤为重要,省去了好多变量以及if判断,值得注意的是,第一次进去肯定累加,收藏。

释疑の语法 ON CHANGE OF相关推荐

  1. 释疑の语法LOCAL

    作用就是把当前对象保存在一个临时存储空间,它只能用到子程序或者FUNTION MODULE里,在程序结束的时候数据对象重新分配在临时空间的值. 如果用LOCAL对同一个对象执行了好几遍,那么只有第一次 ...

  2. 释疑の语法Unpackpack

    For example:  与外围系统接口,外围系统数据库存储数据是有0000的,但是SAP数据库中存储是没有0000,可以用前导零函数或者这个关键字处理 PACK格式:PACK source TO ...

  3. php中change方法的使用,jQuery.change()函数的使用详解

    change()函数用于为每个匹配元素的change事件绑定处理函数.该函数也可用于触发change事件.此外,你还可以额外传递给事件处理函数一些数据. change事件会在文本内容或选项被更改时触发 ...

  4. php中reset()函数,php reset()函数 语法

    PHP reset() 函数 定义和用法 reset()函数把数组的内部指针指向第一个元素,并返回这个元素的值.若失败,则返回 FALSE. reset()函数用来将数组指针设置回数组的开始位置.如果 ...

  5. change()事件及val()/html()方法不会触发change事件

    change()事件及val()/html()方法不会触发change事件 一.定义 change()函数用于为每个匹配元素的change事件绑定处理函数 当元素的值发生改变时,会发生 change ...

  6. 彻底搞懂 Hive|Spark DDL语句 | ALTER 语法

    Hive|Spark DDL语句 | ALTER 语法 SQL Syntax - DDL Statements:SQL语法之DDL语句 一.ALTER DATABASE ALTER PROPERTIE ...

  7. mysql表结构说明只能为1 8_SQL基础

    1 SQL语句分类 名称 作用 语法关键字 DDL 数据定义语言 CREATE,DROP,ALTER DML 数据操纵语言 INSERT,DELETE,UPDATE DQL 数据查询语言 SELECT ...

  8. MySQL配置文件my.cnf中文版(转载)

    mysql的DBA必看的内容,这个选取my-innodb-hurge的那个配置文件的内容,为以后方便查阅. MySQL配置文件my.cnf中文版 #BEGIN CONFIG INFO #DESCR: ...

  9. MySQL学习笔记之九:MySQL Replication

    Mysql内建的复制功能是构建大型.高性能应用程序的基础.复制功能不仅有利于构建高性能的应用,同时也是高可用性.可扩展性.灾难恢复.备份以及数据仓库等工作的基础. 一.复制概述 1.复制的功用 数据分 ...

最新文章

  1. 如何使用Mybatis的拦截器实现数据加密与解密
  2. ICML论文|这违反直觉的“升噪”方法,反而能很好的解决激活函数梯度弥散的问题
  3. 设计模式(二十四)解释器模式
  4. 【渝粤题库】陕西师范大学202961 教育社会学 作业(高起本、专升本)
  5. inet_pton, inet_ntop
  6. android 自定义控件的宽高_巧用Handler获取View控件信息
  7. java查询SQLServer遇到问题:对象名无效。
  8. 经典算法大全之河内之塔
  9. 阶乘c 语言代码,求10000的阶乘(c语言代码实现)
  10. 中文信息处理——使用结巴分词系统
  11. Linux服务笔记之一:Telnet远程登录
  12. nmon结果分析工具_Jmeter测试工具实践:如何为Jmeter开发测试插件定制专属取样器?...
  13. robotframework-selenium2library-导入可选参数
  14. 项目管理的五个过程和九大知识领域
  15. codeforces 129C - Statues 图论 DFS
  16. 近段时间参加的CTF竞赛部分题目复现(ISCC2020 、GKCTF、网鼎杯)
  17. java 无法找到ant_命令行Ant无法识别
  18. 基础不牢靠,何以争朝夕?Java基础面试82道详细解析(更新中)
  19. 婚恋大数据火了,靠大数据找对象,靠谱吗?
  20. KMP算法——俗称看毛片算法

热门文章

  1. 导航菜单设计五步法——B端设计指南
  2. PMCAFF | 从200块到300万,史上最全自媒体报价单
  3. 【重温经典】张小龙:微信背后的产品观
  4. Android 五大存储方式具体解释
  5. 使用Red Gate Sql Data Compare 数据库同步工具进行SQL Server的两个数据库的数据比较、同步...
  6. nginx代理设置域名跳转/域名重定向
  7. 备注 2013 11 19
  8. iphone 有关(maybe you meant: _kSecClass$non_lazy_ptr)
  9. Qt Creator 运行s60 Emulator
  10. C++/CLI思辨录之传递托管堆地址