ABAP COOIS 增加展示字段增强

1 篇文章 0 订阅

前言

业务需求:在COOIS抬头、组件增加客制化显示字段。

一、获取展示显示结构

抬头:F1如下==>IOHEADER

组件:F1如下==>IOOPCOMP

二、显示结构APPEND附加新字段

IOHEADER:

 IOOPCOMP:

三、BADI:WORKORDER_INFOSYSTEM

方法:TABLES_MODIFY_LAY


代码如下:

  METHOD if_ex_workorder_infosystem~tables_modify_lay.

    CASE abap_true.
      WHEN is_tcoa-header_sel.  " 抬头
        IF ct_ioheader[] IS NOT INITIAL.
          DATA(lt_ioheader) = ct_ioheader[].
          SORT lt_ioheader BY plnbez.
          DELETE ADJACENT DUPLICATES FROM lt_ioheader COMPARING plnbez.
          IF lt_ioheader[] IS NOT INITIAL.
            SELECT
              mara~matnr AS plnbez,
              mara~zclph,
              mara~zthgg
              FROM mara
              FOR ALL ENTRIES IN @lt_ioheader
              WHERE matnr = @lt_ioheader-plnbez
              INTO TABLE @DATA(lt_data_header).
            IF sy-subrc = 0.
              SORT lt_data_header BY plnbez.
              LOOP AT ct_ioheader ASSIGNING FIELD-SYMBOL(<fs_ioheader>).
                READ TABLE lt_data_header INTO DATA(ls_data_header) WITH KEY plnbez = <fs_ioheader>-plnbez BINARY SEARCH.
                IF sy-subrc = 0.
                  <fs_ioheader>-zclph = ls_data_header-zclph.
                  <fs_ioheader>-zthgg = ls_data_header-zthgg.
                ENDIF.
              ENDLOOP.
            ENDIF.
          ENDIF.
        ENDIF.
      WHEN is_tcoa-opcomp_sel.  " 组件
        IF ct_ioopcomp[] IS NOT INITIAL.
          DATA(lt_ioopcomp) = ct_ioopcomp[].
          SORT lt_ioopcomp BY aufnr.
          DELETE ADJACENT DUPLICATES FROM lt_ioopcomp COMPARING aufnr.
          IF lt_ioopcomp[] IS NOT INITIAL.
            SELECT
              afko~aufnr,
              afko~gmein,
              afko~gamng,
              afpo~matnr,
              makt~maktx
              FROM afko
              INNER JOIN afpo ON afko~aufnr = afpo~aufnr
              LEFT  JOIN makt ON afpo~matnr = makt~matnr AND makt~spras = '1'
              FOR ALL ENTRIES IN @lt_ioopcomp
              WHERE afko~aufnr = @lt_ioopcomp-aufnr
              INTO TABLE @DATA(lt_data_opcomp).
            IF sy-subrc = 0.
              SORT lt_data_opcomp BY aufnr.
              LOOP AT ct_ioopcomp ASSIGNING FIELD-SYMBOL(<fs_ioopcomp>).
                READ TABLE lt_data_opcomp INTO DATA(ls_data_opcomp) WITH KEY aufnr = <fs_ioopcomp>-aufnr BINARY SEARCH.
                IF sy-subrc = 0.
                  <fs_ioopcomp>-zzgmein = ls_data_opcomp-gmein.
                  <fs_ioopcomp>-zzgamng = ls_data_opcomp-gamng.
                  <fs_ioopcomp>-zzmatnr = ls_data_opcomp-matnr.
                  <fs_ioopcomp>-zzmaktx = ls_data_opcomp-maktx.
                ENDIF.
              ENDLOOP.
            ENDIF.
          ENDIF.
        ENDIF.
      WHEN OTHERS.
    ENDCASE.

  ENDMETHOD.

四、效果如下

抬头:

 组件:

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值