on change of 可以用在循环中,loop,do,while,select... endselect.
语法如下:
ON CHANGE OF dobj [OR dobj1 [OR dobj2] ... ].
statement_block1
[ELSE.
statement_block2]
ENDON.
就是当dobj1 dobj2....在循环中发生变化时,执行statement_block1,否则执行statement_block2
代码举例说明,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
REPORT ztest_on_change_of. DATA: BEGIN OF git_tab OCCURS 0, a(2), b(2), c(2), d(2), END OF git_tab. START-OF-SELECTION. git_tab-a = 'a'. git_tab-b = 'b'. git_tab-c = 'c'. git_tab-d = 'd'. APPEND git_tab. CLEAR git_tab. git_tab-a = 'a'. git_tab-b = 'b'. git_tab-c = 'c'. git_tab-d = 'f'. APPEND git_tab. CLEAR git_tab. git_tab-a = 'a'. git_tab-b = 'bb'. git_tab-c = 'c'. git_tab-d = 'f'. APPEND git_tab. CLEAR git_tab. git_tab-a = 'b'. git_tab-b = 'bb'. git_tab-c = 'c'. git_tab-d = 'f'. APPEND git_tab. CLEAR git_tab. SORT git_tab BY a b. WRITE:/'first'. SKIP. LOOP AT git_tab. WRITE: / git_tab-a, git_tab-b, git_tab-c, git_tab-d. ENDLOOP. ULINE. WRITE:/ 'On change of'. SKIP. LOOP AT git_tab. ON CHANGE OF git_tab-a OR git_tab-b. WRITE: / git_tab-a, git_tab-b, git_tab-c, git_tab-d. ENDON. ENDLOOP. |
运行结果:
以上。
发表评论