ABAP 动态内表分组循环

2022-05-27 08:52:46 浏览数 (1)

在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.

亲测有效。

0 人点赞