导语:最近收到需求,需要在计划订单转采购申请的时候储存一些字段,所以需要在采购申请屏幕上增加一个页签,效果如下图。
效果:
一、增强点
查找到增强点为二代的增强,SMOD:MEREQ001
通过组件查看到,增强结构:CI_EBANDB. 增强屏幕:SAPLXM02->0111
二、增强表
在EBAN表中找到结构CI_EBANDB,将需要增强的字段添加到这个结构里面去
三、增强预留屏幕
在函数组XM02中,创建屏幕0111,并将字段放在屏幕制作器上
四、代码实现
1、定义
*&---------------------------------------------------------------------*
*& 包含 ZXM02TOP
*&---------------------------------------------------------------------*
TABLES ci_ebandb.
DATA :gv_aktvt. "可编辑标识
2、获取数据
在ZXM02U01中获取修改标识,联合屏幕PBO事件控制字段的修改/显示
将表中数据传递给屏幕上
*&---------------------------------------------------------------------*
*& 包含 ZXM02U01
*&---------------------------------------------------------------------*
DATA:ls_mereq_item TYPE mereq_item.
"获取显示/编辑状态
CALL METHOD im_req_item->get_activity
RECEIVING
re_aktvt = gv_aktvt. "A:显示 V:编辑
将数据传递给屏幕
IF im_req_item IS INITIAL.
CLEAR ci_ebandb.
ELSE.
ls_mereq_item = im_req_item->get_data( ).
MOVE-CORRESPONDING ls_mereq_item TO ci_ebandb.
ENDIF.
*&---------------------------------------------------------------------*
*& 包含 ZXM02ZZZ
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0111 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0111 OUTPUT.
LOOP AT SCREEN.
IF gv_aktvt = 'A'.
screen-input = 0.
ELSE.
screen-input = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE.
3、更新数据
将屏幕修改的数据更新到程序内表中
*&---------------------------------------------------------------------*
*& 包含 ZXM02U03
*&---------------------------------------------------------------------*
DATA:ls_mereq_item TYPE mereq_item.
"将屏幕数据修改到行中
IF im_req_item IS NOT INITIAL.
ls_mereq_item = im_req_item->get_data( ).
MOVE-CORRESPONDING ci_ebandb TO ls_mereq_item.
"创建日期
IF ls_mereq_item-datum_cr IS INITIAL.
ls_mereq_item-datum_cr = sy-datum.
ENDIF.
"创建时间
IF ls_mereq_item-uzeit_cr IS INITIAL.
ls_mereq_item-uzeit_cr = sy-uzeit.
ENDIF.
CALL METHOD im_req_item->set_data( ls_mereq_item ).
ex_changed = abap_true.
ENDIF.
五:其他
采购申请的审批增强也可以在【ZXM02U05】或(BADI)【MD_PURREQ_POST】中实现
作者:小飞猪猪猪猪猪猪猪–CSDN