微信搜索公众号:SAP中文学习网交流平台      SAP技术千人群: SAP中文学习网技术群      SAP技术交流2群:SAP技术交流2群      SAP新人群:SAP中文学习网新人群     

SAP中文学习网

MM模块ME51N ME52N ME53N屏蔽增强

来源: 互联网TAG标签: ME51N ME52N ME53N 作者:SAP中文学习网 点击:

使用增强:MEREQ001 购买申请中的客户自有数据

1、如果需要向PR中加入自定义字段,事务码se11,打开透明表EBAN,双击include:CI_EBANDB,创建结构CI_EBANDB,维护自定义的字段。
image

2、事务码CMOD create project:ZMMpr001,在Enhancement assignment中添加增强MEREQ001,保存。

3、事务码smod:MEREQ001,打开如下图,

image
有三个function module,还有screen area,可知screen :0111便是预留的屏幕,可以在其函数组中创建screen 0111,然后在其上画一些需要的字段栏位就ok了。
双击其中一个function module,然后点击display object list按钮image ,显示如下图
image
在函数组XM02中create screen 0111,然后在其上画一些需要的字段栏位,注意0111设置为subscreen。

激活,CMOD中激活ZMMpr001,此时在事务码ME51n中就能看到多了一个客户数据tab页,相应me52n,me53n等也有。
image
到此为止,屏幕做好了,但是要在屏幕栏位上输入数据并能保存到透明表,及显示的时候能从透明表读出到屏幕栏位,就需要在上述三个function module中写代码。

4、在函数组XM02中,有include:ZXM02TOP,目前是空的,create it,添加代码:

data : gv_trtyp type aktvt.
DATA: FL_INPUT TYPE FLAG.

激活EXIT_SAPLMEREQ_001中的include添加如下代码:

TABLES : ci_ebandb.
DATA : i_mereq_item TYPE mereq_item.
CALL METHOD im_req_item->get_activity
RECEIVING
re_aktvt = gv_trtyp.
CASE gv_trtyp.
WHEN 'A'.
fl_input = space. "Output only
WHEN 'V'.
fl_input = 'X'. "Input/Output
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中的include,添加下面代码:

DATA : i_mereq_item TYPE mereq_item.
IF NOT im_req_item IS 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 = 'X'.
ENDIF.

最后对上述建立的subscreen 0111添加PBO,如下代码:

*----------------------------------------------------------------------*
***INCLUDE ZXM02O01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0111 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0111 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
CHECK fl_input IS INITIAL.
LOOP AT SCREEN.
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE. " STATUS_0111 OUTPUT

OK,到此为止,ME51n等的屏幕增强就完成了,屏幕0111上栏位可以保存到eban中,修改,显示等。
这是比较简单的逻辑,如果有其他复杂的要求,可以对上述代码大做文章。

(编辑:cindy liu )
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
您有可能感兴趣的文章