SAP交货单增强
SAP交货单增强
标签(空格分隔): SAP ABAP 增强
一、需求内容
需要在概览屏幕以及行项目屏幕增加客制化字段
二、增强点
交货单屏幕增强一共有三个BADI
LE_SHP_TAB_CUST_HEAD 交货单抬头屏幕增强
LE_SHP_TAB_CUST_ITEM 交货单行项目屏幕增强
LE_SHP_TAB_CUST_OVER 交货单概览屏幕增强
本次根据需求,我们使用第二个和第三个增强点
三、代码内容
A.增强代码内容
1. IF_EX_LE_SHP_TAB_CUST_ITEM~ACTIVATE_TAB_PAGE
METHOD if_ex_le_shp_tab_cust_over~activate_tab_page.
ef_caption = '在途库存'.
ef_program = 'SAPLZSD_DNENCH'.
ef_dynpro = '9001'.
ENDMETHOD.
2. IF_EX_LE_SHP_TAB_CUST_OVER~TRANSFER_DATA_TO_SUBSCREEN
METHOD if_ex_le_shp_tab_cust_over~transfer_data_to_subscreen.
CALL FUNCTION 'ZFM_GET9001DATA'
EXPORTING
is_likp = is_likp
it_lips = it_xlips.
ENDMETHOD.
3. IF_EX_LE_SHP_TAB_CUST_OVER~TRANSFER_DATA_FROM_SUBSCREEN
METHOD if_ex_le_shp_tab_cust_over~transfer_data_from_subscreen.
CALL FUNCTION 'ZFM_SET9001DATA'
IMPORTING
es_zmblnr = cs_likp-zmblnr
es_zmjahr = cs_likp-zmjahr.
ENDMETHOD.
ITEM中的代码和OVER的代码类似,这里把所有的逻辑都放在了一个函数组ZSD_DNENCH中,这样方便维护
B.函数组内容
1.9001屏幕
2. 9001 USER_COMMAND
MODULE user_command_9001 INPUT.
CLEAR:gv_code.
gv_code = sy-ucomm.
CASE gv_code.
WHEN '&ZTRANS'. "当点击库存转移
CREATE OBJECT gr_dnench.
DATA(lv_type) = gr_dnench->check_data( it_lips = gt_lips ).
CHECK lv_type = abap_false.
gr_dnench->transfer_data( is_likp = gs_likp it_lips = gt_lips ).
WHEN '&ZREVERSE'. "当点击取消库存转移
CREATE OBJECT gr_dnench.
lv_type = gr_dnench->check_reverse_data( is_likp = gs_likp ).
CHECK lv_type = abap_false.
gr_dnench->reverse_data( is_likp = gs_likp ).
WHEN OTHERS.
ENDCASE.
ENDMODULE.
由于按钮需要修改行项目一些字段的内容,比较麻烦这里着重说一下
DATA:c_xlips TYPE c LENGTH 30 VALUE '(SAPMV50A)XLIPS[]'.
ASSIGN (c_xlips) TO <fs_xlips>.
LOOP AT <fs_xlips> ASSIGNING FIELD-SYMBOL(<fs_lips>).
<fs_lips>-zlgort = <fs_lips>-lgort.
<fs_lips>-lgort = '9999'.
<fs_lips>-updkz = 'U'.
ENDLOOP.
三、效果图
post SAP-Garson
原文链接:https://blog.csdn.net/stringformat/article/details/100533224文章来自于网络,如果侵犯了您的权益,请联系站长删除!