ABAP动态排序内表

排序规则表
物理表ZTSORT.

FORM autosort  TABLES p_itab USING p_zzl1 TYPE mara-zzl1 CHANGING p_flg.
  DATA:it_field TYPE abap_sortorder_tab,
       wa_field TYPE abap_sortorder.
  CLEAR p_flg.
  SELECT * INTO TABLE @DATA(lt_sort) FROM ztsort WHERE zzl1 = @p_zzl1.
  IF sy-subrc NE 0.
    EXIT.
  ENDIF.
  SORT lt_sort BY zsortid.
  READ TABLE p_itab ASSIGNING FIELD-SYMBOL(<fs1>) INDEX 1 .
  REFRESH it_field.
  LOOP AT lt_sort INTO DATA(wa_sort).
    ASSIGN COMPONENT 'NAME' OF STRUCTURE wa_sort TO FIELD-SYMBOL(<fs_sort>).
    IF sy-subrc EQ 0.
      ASSIGN COMPONENT <fs_sort> OF STRUCTURE <fs1> TO FIELD-SYMBOL(<fs2>).
      IF sy-subrc EQ 0.
        CLEAR wa_field.
        wa_field-name = <fs_sort>.
        wa_field-descending = wa_sort-descending.
        APPEND wa_field TO it_field.
      ENDIF.
    ENDIF.
  ENDLOOP.
  IF it_field[] IS NOT INITIAL.
    SORT p_itab BY (it_field).
    p_flg = 'S'.
  ENDIF.
ENDFORM.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值