微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ABAP字符串模板-具有GROUP BY

如何解决ABAP字符串模板-具有GROUP BY

我指的是这个问题:LOOP AT... GROUP BY with dynamic group key

我也想做一些动态的GROUP-BY-Aggregation。

我想像以下代码片段那样对GROUP-BY-Statement进行动态化:

      WHEN 'vkorg'.

        LOOP AT ls_output-merged_data INTO ls_tmp
          GROUP BY (  sales_org = ls_tmp-sales_org
                      group_quantity = GROUP SIZE )

           ASCENDING ASSIGNING FIELD-SYMBOL(<fs_tmp_2>).

          lt_tmp_dim1 = VALUE #( BASE lt_tmp_dim1 (
                              sales_org = <fs_tmp_2>-sales_org
                              group_quantity  = <fs_tmp_2>-group_quantity
                              ) ).
        ENDLOOP.

目前我对此有些口吻:

  LOOP AT ls_output-merged_data INTO ls_tmp
      GROUP BY COND #( WHEN iv_dim1 EQ 'vkorg' THEN |{ ls_tmp-sales_org }| ) 


                               ASCENDING ASSIGNING FIELD-SYMBOL(<total_group>).


    LOOP AT GROUP <total_group> ASSIGNING FIELD-SYMBOL(<line_data>).
      ASSIGN COMPONENT 'vkorg' OF STRUCTURE <line_data> TO FIELD-SYMBOL(<vkorg>).
      EXIT.
    ENDLOOP.




  ENDLOOP.

这里的问题是,我还需要GROUP SIZE字段。但是,我无法将其放入嵌入式表达式中,例如:| {ls_tmp-sales_org GROUP SIZE} |

我尝试了几种位置和语法,但无法使其正常工作。

有人以前做过类似的事情并且可以帮助我吗?

解决方法

感谢Sandra,现在可以使用了:

  LOOP AT ls_output-merged_data INTO ls_tmp
      GROUP BY ( sales_org = COND #( WHEN iv_dim1 EQ 'vkorg' THEN |{ ls_tmp-sales_org }| ) 
                 group_quantity = GROUP SIZE  )

           ASCENDING ASSIGNING FIELD-SYMBOL(<total_group>).




  ENDLOOP.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。