JamesG0204 2022-05-26 10:32
浏览 178
已结题

ABAP 动态内表如何分组循环


  LOOP AT <fs_dytable> ASSIGNING <fs_dywa> GROUP BY SWITCH string( lv_flag WHEN 'A' THEN |MATNR = <FS_DYWA>-MATNR|
                                                                            WHEN 'B' THEN |MATNR = <FS_DYWA>-MATNR WERKS = <FS_DYWA>-WERKS STLAN = <FS_DYWA>-STLAN STLAL = <FS_DYWA>-STLAL| )
                              ASCENDING ASSIGNING FIELD-SYMBOL(<group>).
    LOOP AT GROUP <group> ASSIGNING FIELD-SYMBOL(<fs>).
      MOVE-CORRESPONDING <fs> TO gs_handle.
    ENDLOOP.

  ENDLOOP.

动态内表如何分组循环,group by 里面的-matnr在运行时,没有被assigning,所以条件并没有起作用,有什么办法可以让动态内表分组循环

  • 写回答

1条回答 默认 最新

  • JamesG0204 2022-05-26 10:54
    关注
    
      LOOP AT <fs_dytable> ASSIGNING <fs_dywa>.
        ASSIGN COMPONENT 'MATNR' OF STRUCTURE <fs_dywa> TO FIELD-SYMBOL(<fs_matnr>).
        ASSIGN COMPONENT 'STLAL' OF STRUCTURE <fs_dywa> TO FIELD-SYMBOL(<fs_stlal>).
        AT END OF <fs_stlal>.
           lv_flag = 'B'.
        ENDAT.
      ENDLOOP.
    

    我真傻,真的,没想到这么简单,没想到这样也可以

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月4日
  • 已采纳回答 5月27日
  • 创建了问题 5月26日