其实在loop ... endloop 中间,有个AT <LEVEL>,<…>,ENDAT循环. 其中的<LEVEL>包括: FRIST, LAST, NEW , END OF.这些可以用来进行内表中按某个字段进行分组统计. FIRST 内 表的第一行 LAST 内 表的最后一 行 NEW <f> 行组 的开头,与 字段 <f> 和 <f> 剩余字段中 的内容相同 END Of <f> ...
LOOP at it_tab.ENDLOOP.it_tab必须是带表头的内表,如果不带表头的话,必须定义一个与内表同结构的work area。LOOP AT IT_TAB INTO WA_TAB.ENDLOOP.
在SAP HR的开发中,我们通常使用LDB逻辑数据库来开发report.在 GET pernr/perasa取得infotype中的数据之后,有两种方式可以循环访问Pnnnn中的数据。一种就是传统的LOOP AT ENDLOOP,另外一种就是使用PROVIDE ENDPROVIDE.工具/原料 SAP HR LDB 逻辑数据库 方法/步骤 1 仅仅time constraints是1和2的infotype才可以用PR...
LOOP AT lt_data ASSIGNING <ls_data>. AT NEW a. WRITE: 'NEW', <ls_data>-a, <ls_data>-b, /. ENDAT. AT END OF a. WRITE: 'END', <ls_data>-a, <ls_data>-b, /. ENDAT. ENDLOOP. LOOP AT lt_data INTO <ls_data>. AT NEW a. WRITE: 'NEW', <ls_data>-a, <ls_data>-...
LOOP AT itab into wa. wa_temp = wa. AT NEW a. ENDAT. ENDLOOP. 再用AT NEW等事件的。 不过今天在解决凯神的一个小问题时,偶然得到了一个其他的解决办法。 (2/4)代码 废话不说了,上代码。 TYPES:BEGIN OF ty_data, ...
1, Collect介绍 ABAP编程中,经常会要求对loop循环中的一些数值类型(类型 I、P 或F)的字段进行合计,也可以直接使用collect语句进行合计,当然也可以自定义一个变量用来保存累加结果,然后使用At...endat语句进行合计,。 简单说来,
INDEX1TRANSPORTINGPRICE.ULINE.WRITE:'内表修改后数据(指定修改PRICE字段,故FLDATE字段没有修改)'.LOOPATGT_SFLIGHTINTOGS_SFLIGHT.WRITE:/GS_SFLIGHT-CARRID,GS_SFLIGHT-CONNID,GS_SFLIGHT-FLDATE,GS_SFLIGHT-PRICE.ENDLOOP. - 效果演示 使用索引修改内表数据...
LOOP AT l_it_2 . LOOP AT l_it_1 WHERE id = l_it_2-id. EXIT. ENDLOOP. ENDLOOP. GET RUN TIME FIELD t2. GET RUN TIME FIELD t3. l_dex = 1. LOOP AT l_it_2 . LOOP AT l_it_1 FROM l_dex. IF l_it_1-id = l_it_2-id. EXIT. ELSE. l_dex = l_dex + 1. CONTINU...
结论: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循环的方式并比较一下优劣. 二 几种方式 标准表 排序表 嵌套哈希内表- GROUP BY 语句 构造 嵌套哈希内表- AT NEW 语句 构造 两个排序表通过INDEX 优化 二分查找优化 三 先说结论 通过测试: 双排序表通过 index 优化的方式性能最优.(建议有经验的开发采用这种方式).但是该方式对数据...