SAP ABAP ME2N屏幕字段增强

ME2N屏幕字段增强

发布日期:2024/08/24

案例:事务码ME2N执行展示画面追加创建人(EKKO-ERNAM)、交货日期(EKET-EINDT)、采购订单抬头文本。对应多个项目交货日期时取最早的交货日期。

  1. 确认ME2N展示时参考的结构为MEREP_OUTTAB_PURCHDOC,并附加需要的字段。
    在这里插入图片描述

  2. EKKO和EKPO的同名字段添加到结构后会自动赋值并展示内容,所以此处ERNAM不需要再写赋值逻辑,需要添加ZEINDT和ZSGTXT的取赋值逻辑。

  3. 确定增强点。程序LMEREPI02的 CALL FUNCTION 'MEPOBADI_CHANGE_OUTTAB’后取到了输出数据outtab,my_struct_name是输出结构 MEREP_OUTTAB_PURCHDOC。我们可以在其后做增强。
    在这里插入图片描述

  4. 增强详细代码如下,此处读取到的长文本存于内表lt_tline中。后面拼接长文本,为了避免双重循环,用了concat_lines_of()(拼接内表的所有字段)。

ENHANCEMENT 1  ZEH_MM_PMZDZQ.    "active version
  IF my_struct_name = 'MEREP_OUTTAB_PURCHDOC' AND SY-TCODE = 'ME2N'.
    TYPES:BEGIN OF ts_line,
          tdline TYPE tdline,
          END OF ts_line.
    DATA:lt_merep TYPE STANDARD TABLE OF MEREP_OUTTAB_PURCHDOC,
         lt_tline  TYPE STANDARD TABLE OF tline,
         lt_line TYPE STANDARD TABLE OF ts_line,
         lv_tdname TYPE thead-tdname.
    FIELD-SYMBOLS:<lfs_outtab> TYPE MEREP_OUTTAB_PURCHDOC.
    MOVE-CORRESPONDING <outtab> TO lt_merep.
    IF lt_merep IS NOT INITIAL.
*交货日期:EKET-EINDT,若存在多个,则展示最早交货日期
      SELECT ebeln,ebelp,eindt
        FROM eket
         FOR ALL ENTRIES IN @lt_merep
       WHERE ebeln = @lt_merep-ebeln
         AND ebelp = @lt_merep-ebelp
        INTO TABLE @DATA(lt_eindt).
      SORT lt_eindt by ebeln ebelp eindt.
      DELETE ADJACENT DUPLICATES FROM lt_eindt COMPARING ebeln ebelp.

      LOOP AT <outtab> ASSIGNING <lfs_outtab>.
*读取交货日期      
        READ TABLE lt_eindt ASSIGNING FIELD-SYMBOL(<lfs_eindt>)
        WITH KEY ebeln = <lfs_outtab>-ebeln ebelp = <lfs_outtab>-ebelp BINARY SEARCH.
        IF sy-subrc = 0.
          <lfs_outtab>-zeindt = <lfs_eindt>-eindt.
        ENDIF.
*读取长文本        
        CLEAR:lt_tline[].
        lv_tdname = <lfs_outtab>-ebeln.
        CALL FUNCTION 'READ_TEXT'
          EXPORTING
          id                      = 'F01'
          language                = sy-langu
          name                    = lv_tdname
          object                  = 'EKKO'
        TABLES
          lines                   = lt_tline
        EXCEPTIONS
          id                      = 1
          language                = 2
          name                    = 3
          not_found               = 4
          object                  = 5
          reference_check         = 6
          wrong_access_to_archive = 7
        OTHERS                  = 8.
        MOVE-CORRESPONDING lt_tline TO lt_line.
        <lfs_outtab>-zsgtxt = concat_lines_of( table = lt_line sep = '').
      ENDLOOP.
    ENDIF.
  ENDIF.
ENDENHANCEMENT.
  1. 最后来看一下实现效果吧。
    ME2N输入条件执行后,展示画面中更改布局,显示新增的字段。
    在这里插入图片描述
    在这里插入图片描述
    我们想要增强的字段就展示出来啦!
  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值