释疑の语法 ON CHANGE OF
先看標準的語法:
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判斷,值得注意的是,第一次進去肯定累加,收藏。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的释疑の语法 ON CHANGE OF的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP在大中华区推出SAP数字化转型教育
- 下一篇: 释疑の函数POPUP_TO_CONFIR