即在LOOP 里把该执行的都执行完了才执行它。 AT NEW F :如果字段F 及F 的左侧全部字段的数据,与上一行数据不一致,则执行代码。 就比如: AAA AAA AAB 那么在第一个AAA和AAB的时候就会触发事件。 AT END OF F:如果字段F 及F 的左侧全部字段的数据,与下一行数据不一致,则执行代码。 所以AT NEW F
ABAP-LOOP中的AT事件 LOOP中的AT事件 AT FIRST…ENDAT 在遍历至第一条数据时执行该代码块 AT LAST…ENDAT 在遍历至最后一条数据是时执行该代码块 ON CHANGE OF…ENDON 指定其中一个字段,当该字段发生变化时,执行该代码段, 执行时机: 第一行 指定字段与上一条不一致时 AT NEW…ENDAT 遍历时会检查指定字段及...
LOOP AT语句的基本语法如下: LOOP AT <internal table> [INTO <work area>] [WHERE <condition>]. "循环体 ENDLOOP. 其中,<internal table>代表要遍历的内部表名,<work area>代表在每次循环开始前要赋值的工作区,<condition>代表一个可选的条件表达式,用于筛选符合条件的记录。 循环中的条件判断 在循环体内部...
'', W_TEST-PRODUCT, W_TEST-SALES.CLEAR:W_TEST.ENDLOOP.WRITE:/.WRITE:/'结果如下:'.WRITE:/'AT NEW 用法:'.LOOPATI_TEST2INTOW_TEST.WRITE:/ W_TEST-NAME,'', W_TEST-PRODUCT, W_TEST-SALES.CLEAR:W_TEST.ENDLOOP
Loop at into <wa> . <statement block> endloop. “ 带表头行的内表循环操作 Loop at . <statement block> endloop. “ 不带表头行内表操作 -- 循环体的MODIFY,DELETE等语句不必指定INDEX项,系统默认处理当前行 . -- 如果不需要读取所有的内表行,可以使用WHERE选项进行限制 -- LOOP AT ...
使用LOOP AT语句访问内部表的步骤如下: a)在LOOP AT语句中指定要迭代的内部表名称和工作区变量。 b)在代码块中使用工作区变量来访问和操作数据行。 下面是一个简单的示例,演示了如何使用LOOP AT访问内部表中的数据: LOOP AT lt_data INTO lv_data. WRITE: / lv_data. ENDLOOP. 在上述示例代码中,lt_data...
sy-subrc=0.<fs_out>-vkorg_desc=ls_tvkot-vtext.ENDIF."部门READTABLElt_tspatINTODATA(ls_tspat)WITHKEYspart=<fs_out>-spart.IFsy-subrc=0.<fs_out>-spart_desc=ls_tspat-vtext.ENDIF."审核状态IF<fs_out>-sdabw='X'.<fs_out>-sdabw_desc=gc_sdabw_1.ENDIF.UNASSIGN<fs_out>.ENDLOOP....
结论:COLLECT实际运用中loop的内表不需要排序,直接loop累加计算。 2、问题二: 以collect代码稍加改变: LOOP AT t_data. IF t_data-v1 = 2 OR t_data-v1 = 4 OR t_data-v1 = 5. COLLECT t_data INTO t_test. "按关键列统计值 ELSE. DELETE t_data. ENDIF. ENDLOOP . 复制代码 测试结果: ...
LOOP AT lt_struct INTO ls_struct. ls_output-id = ls_struct-compname. TRY. ASSIGN ls_struct-symbquick-quickdata TO <lv_value>. lr_symbsimple ?= <lv_value>. ls_output-value = lr_symbsimple->valstring. CATCH cx_root INTO lr_cx. ls_output-value = lr_cx->get_text( ). ENDTRY....
= '00200'.gt_table-posnr = '10'.append gt_table.gt_table-vbeln = '00200'.gt_table-posnr = '20'.append gt_table.gt_table-vbeln = '00200'.gt_table-posnr = '30'.append gt_table.sort gt_table by vbeln.loop at gt_table.move gt_table to gs_tableline.at end of...