ME51N 采购申请屏幕增强

文章目录


一.需求

采购申请项目新增”设备编号“、“外围单号”、“用途”字段。


二.实现

1.增强字段新增

在表EBAN的结构CI_EBANDB中增加增强字段

2.增强点

CMOD:MEREQ001

全局定义:函数组 XM02->ZXM02TOP

*&---------------------------------------------------------------------*
*& 包含               ZXM02TOP
*&---------------------------------------------------------------------*
DATA:gv_input TYPE flag.
DATA:gv_aktvt TYPE aktvt.

功能出口:

EXIT_SAPLMEREQ_001

*&---------------------------------------------------------------------*
*& 包含               ZXM02U01
*&---------------------------------------------------------------------*
TABLES:ci_ebandb.
DATA:i_mereq_item TYPE mereq_item.

CLEAR ci_ebandb.

" 获取单据修改状态
CALL METHOD im_req_item->get_activity
  RECEIVING
    re_aktvt = gv_aktvt.

CASE gv_aktvt.
  WHEN 'A'.
    gv_input = space. 
  WHEN 'V'.
    gv_input = 'X'.  
ENDCASE.

IF im_req_item IS INITIAL .
  CLEAR ci_ebandb.
ELSE.
  " 获取单据数据
  i_mereq_item = im_req_item->get_data( ).
  MOVE-CORRESPONDING i_mereq_item TO ci_ebandb.
ENDIF.

EXIT_SAPLMEREQ_003

*&---------------------------------------------------------------------*
*& 包含               ZXM02U03
*&---------------------------------------------------------------------*
DATA:i_mereq_item TYPE mereq_item.

IF im_req_item IS NOT INITIAL .

  i_mereq_item = im_req_item->get_data( ).
  MOVE-CORRESPONDING ci_ebandb TO i_mereq_item.
  CALL METHOD im_req_item->set_data( i_mereq_item ).
  ex_changed = abap_true.

ENDIF.

屏幕出口:(也就是我们画屏幕的地方)

屏幕111 注意勾选子屏幕

*----------------------------------------------------------------------*
***INCLUDE ZXM02O01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0111 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0111 OUTPUT.
  IF sy-tcode = 'ME53N'.
    LOOP AT SCREEN.
      screen-input = '0'.
      MODIFY SCREEN.
    ENDLOOP.
  ELSEIF sy-tcode = 'ME51N' OR sy-tcode = 'ME52N'.
    LOOP AT SCREEN.
      IF screen-name+0(10) = 'CI_EBANDB-'.
        screen-input = '1'.
        MODIFY SCREEN.
      ELSEIF screen-name+0(10) = 'CI_EBANDB-'.
        screen-input = '0'.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDMODULE.

最后CMOD激活项目!

出口EXIT_SAPLMEREQ_010 这里面可写一些屏幕校验逻辑

三.ME52N展示

四.BAPI增强字段传值 

结构增加增强字段:BAPI_TE_MEREQITEM、BAPI_TE_MEREQITEMX

注意:BAPI_TE_MEREQITEMX增强字段类型为BAPIUPDATE

 相关部分代码:

"增强
DATA:ls_extensionin TYPE bapiparex,
     lt_extensionin TYPE TABLE OF bapiparex.
DATA:ls_bapi_te_mereqitem  TYPE bapi_te_mereqitem,
     ls_bapi_te_mereqitemx  TYPE bapi_te_mereqitemx.

*    增强字段
     ls_bapi_te_mereqitem-preq_item = lv_bnfpo.
     ls_bapi_te_mereqitem-zsbbh     = <value>-zsbbh.
     ls_extensionin-structure       = 'BAPI_TE_MEREQITEM'.
     ls_extensionin-valuepart1      = ls_bapi_te_mereqitem.
     APPEND ls_extensionin TO lt_extensionin.
     CLEAR  ls_extensionin.

     ls_bapi_te_mereqitemx-preq_item =  lv_bnfpo.
     ls_bapi_te_mereqitemx-zsbbh     =  abap_true.
     ls_extensionin-structure        = 'BAPI_TE_MEREQITEMX'.
     ls_extensionin-valuepart1       = ls_bapi_te_mereqitemx.
     APPEND ls_extensionin TO lt_extensionin.
     CLEAR  ls_extensionin.


    CALL FUNCTION 'BAPI_PR_CREATE'
      EXPORTING
        prheader    =
        prheaderx   =
      IMPORTING
        number      =
      TABLES
        return      =
        pritem      =
        pritemx     =
        praccount   =
        praccountx  =
        extensionin = lt_extensionin.

总结

相关ME51N采购申请行屏幕增强,傻瓜式步骤。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值