在ABAP中使用动态内表分组循环时,如果直接at end of 或group by 会报错。 At end of :
代码语言:javascript复制LOOP AT <dy_table> ASSIGNING <dyn_wa>.
AT END OF belnr.
ENDAT.
ENDLOOP.
Group by:
代码语言:javascript复制LOOP AT <dy_table> ASSIGNING <dyn_wa> GROUP BY ( belnr = <dyn_wa>-belnr ) ASCENDING ASSIGNING FIELD-SYMBOL(<group>).
ENDLOOP.
这样是因为<dyn_wa>是通用类型,只有assignging后才有类型。 解决方法:
代码语言:javascript复制LOOP AT <dy_table> ASSIGNING <dyn_wa>.
ASSIGN COMPONENT 'BELNR' OF STRUCTURE <dyn_wa> TO <fs_belnr>.
AT END OF <fs_belnr>.
ENDAT.
ENDLOOP.
亲测有效。