ME51nME52nME53n屏幕增强Word文件下载.docx
《ME51nME52nME53n屏幕增强Word文件下载.docx》由会员分享,可在线阅读,更多相关《ME51nME52nME53n屏幕增强Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
i_mereq_itemTYPEmereq_item.
CALLMETHODim_req_item->
get_activity
RECEIVING
re_aktvt=gv_trtyp.
CASEgv_trtyp.
WHEN'
A'
.
fl_input=space."
Outputonly
V'
fl_input='
X'
.
"
Input/Output
ENDCASE.
IFim_req_itemISINITIAL.
CLEAR:
ELSE.
i_mereq_item=im_req_item->
get_data().
MOVE-CORRESPONDINGi_mereq_itemTOci_ebandb.
ENDIF.
激活EXIT_SAPLMEREQ_003中的include,添加下面代码:
IFNOTim_req_itemISINITIAL.
MOVE-CORRESPONDINGci_ebandbTOi_mereq_item.
set_data(i_mereq_item).
ex_changed='
最后对上述建立的subscreen0111添加PBO,如下代码:
*----------------------------------------------------------------------*
***INCLUDEZXM02O01.
*&
---------------------------------------------------------------------*
Module
STATUS_0111
OUTPUT
*
text
MODULEstatus_0111OUTPUT.
SETPF-STATUS'
xxxxxxxx'
SETTITLEBAR'
xxx'
CHECKfl_inputISINITIAL.
LOOPATSCREEN.
screen-input=0.
MODIFYSCREEN.
ENDLOOP.
ENDMODULE.
OUTPUT
OK,到此为止,ME51n等的屏幕增强就完成了,屏幕0111上栏位可以保存到eban中,修改,显示等。
这是比较简单的逻辑,如果有其他复杂的要求,可以对上述代码大做文章。
采购申请增强CODE:
SMOD.CMOD
增强:
MEREQ001
从SE11进入EBAN
双击CI_EBANDB
全局定义
包括ZXM02TOP*
I_EBKNTYPEMEREQ_ITEM.
GV_TRTYPTYPEAKTVT.
FL_INPUTTYPEFLAG.
DATALT_EXKNTYPEEXKN.
读取数据:
EXIT_SAPLMEREQ_001.”INCLUDEZXM02U01.
包括ZXM02U01*
CI_EBANDB.
I_MEREQ_ITEMTYPEMEREQ_ITEM.
DATALT_ITEMSTYPEMMPUR_ACCOUNTING_LIST.
DATAWA_ITEMSLIKELINEOFLT_ITEMS.
*获取输入输出状态
CALLMETHODIM_REQ_ITEM->
GET_ACTIVITY
RE_AKTVT=GV_TRTYP.
CASEGV_TRTYP.
WHEN'
FL_INPUT=SPACE."
FL_INPUT='
."
H'
.
IFSY-TCODE='
ME51N'
ENDIF.
IFIM_REQ_ITEMISINITIAL.
CLEAR:
*取出AFCE号
I_MEREQ_ITEM=IM_REQ_ITEM->
GET_DATA().
MOVE-CORRESPONDINGI_MEREQ_ITEMTOCI_EBANDB.
MOVEI_MEREQ_ITEMTOI_EBKN.
*取出WBS
LT_ITEMS=IM_REQ_ITEM->
IF_ACCT_CONTAINER_MM~GET_ITEMS().
LOOPATLT_ITEMSINTOWA_ITEMS.
LT_EXKN=WA_ITEMS-MODEL->
GET_EXKN().
ENDLOOP.
ENDIF.
*IFSY-UNAME='
CHENHONGJIAO'
*BREAK-POINT.
*DATA:
LCL_REF_HEADERTYPEREFTOIF_PURCHASE_REQUISITION.
L_MEREQ_HEADERTYPEMEREQ_HEADER.
LCL_RELEASE_STRATEGY_MMTYPEREFTOIF_RELEASE_STRATEGY_MM.
LCL_RELEASE_STATE_MMTYPEREFTOIF_RELEASE_STATE_MM.
*取抬头数据
*LCL_REF_HEADER=IM_REQ_ITEM->
GET_REQUISITION().
*L_MEREQ_HEADER=LCL_REF_HEADER->
*
*CALLMETHODIM_REQ_ITEM->
IF_RELEASABLE_MM~GET_DATA
*IMPORTING
*EX_STRATEGY=LCL_RELEASE_STRATEGY_MM
*EX_STATE=LCL_RELEASE_STATE_MM.
*ENDIF.
存取数据:
EXIT_SAPLMEREQ_003.”INCLUDEZXM02U03.
包括ZXM02U03*
*保存AFCE数据
IFNOTIM_REQ_ITEMISINITIAL.
MOVE-CORRESPONDINGCI_EBANDBTOI_MEREQ_ITEM.
CALLMETHODIM_REQ_ITEM->
SET_DATA(I_MEREQ_ITEM).
EX_CHANGED='
增强屏幕:
SAPLXM020111
INCLUDEZXM02ZZZ."
SubprogramsandModules
DATA:
G_PSPIDLIKEPROJ-PSPID,
G_PSPNRLIKEPRPS-PSPNR,
G_BUKRSLIKET001-BUKRS,
ZAFCEDESCRLIKEZCJ30-AFCEDESCR,"
AFCE说明
ZZAMOUNT(20),
G_ZZAMOUNTLIKEZCJ30-ZAMOUNT."
人民币金额
BEGINOFTAB_G_ZZAFCEIDOCCURS0,
AFCEIDLIKEZCJ30-AFCEID,"
存货号
ENDOFTAB_G_ZZAFCEID.
*--下拉列表定义
TYPE-POOLSVRM.
FNAMETYPEVRM_ID,
VVATYPEVRM_VALUES,
LVVALIKELINEOFVVA.
L_TTYPEI.
ModuleSTATUS_0111OUTPUT
*text
MODULESTATUS_0111OUTPUT.
*SETPF-STATUS'
*SETTITLEBAR'
*判断是否输出AFCE
*只有类型为Q,P/D,A三种类型时才输入AFCE号.
IF(I_EBKN-KNTTP='
Q'
ANDI_EBKN-PSTYP='
0'
)
OR(I_EBKN-KNTTP='
P'
9'
ANDLT_EXKN-PS_PSP_PNR<
>
'
00000000'
)."
IFFL_INPUTISINITIAL.
LOOPATSCREEN.
SCREEN-INPUT=0.
MODIFYSCREEN.
PERFORMAFCE_DATA."
AFCE帮助
ELSE.
*当数据删除时AFCE号不输入状态
IFI_EBKN-LOEKZ='
SCREEN-ACTIVE='
ENDMODULE."
STATUS_0111OUTPUT
FormAFCE_DATA
*-->
p1text
*<
--p2text
FORMAFCE_DATA.
G_PSPID,G_PSPNR,TAB_G_ZZAFCEID,TAB_G_ZZAFCEID[],VVA,VVA[],
ZZAMOUNT,G_ZZAMOUNT,ZAFCEDESCR.
G_PSPNR=LT_EXKN-PS_PSP_PNR.
*根据WBS查找项目
SELECTSINGLEPROJ~PSPID
INTOG_PSPID
FROMPROJ
INNERJOINPRPSONPRPS~PSPHI=PROJ~PSPNR
WHEREPRPS~PSPNR=G_PSPNR.
*根据分配预算项目表取出AFCE号
SELECTAFCEID
FROMZCJ30
INTOCORRESPONDINGFIELDSOFTABLETAB_G_ZZAFCEID
WHEREPSPID=G_PSPID
ANDAFCEID<
'
L_T=0.
LOOPATTAB_G_ZZAFCEID.
L_T=L_T+1.
FNAME='
CI_EBANDB-ZZAFCEID'
LVVA-KEY=L_T.
LVVA-KEY=TAB_G_ZZAFCEID-AFCEID.
APPENDLVVATOVVA.
CALLFUNCTION'
VRM_SET_VALUES'
EXPORTING
ID=FNAME
VALUES=VVA.
*公司
IFI_EBKN-ZZAFCEIDISNOTINITIAL.
G_BUKRS.
IFG_PSPID+4
(2)='
00'
G_BUKRS=G_PSPID+2
(2).
G_BUKRS=G_PSPID+2(4).
*根据AFCE号取出描述,金额
SELECTSINGLEZAMOUNTDESCR
FROMZTAFCE
INTO(G_ZZAMOUNT,ZAFCEDESCR)
WHERECOMID=G_BUKRS
ANDAFCEID=I_EBKN-ZZAFCEID.
IFSY-SUBRC=0.
ZZAMOUNT=G_ZZAMOUNT.
CONDENSEZZAMOUNT.
ENDFORM."
AFCE_DATA
检查数据:
EXIT_SAPLMEREQ_005.”INCLUDEZXM02U05.
包括ZXM02U05*
*BREAK-POINT.
DATAL_EXKNTYPEEXKN.
*取了WBS元素
LT_ITEMS=IM_REQ_ITEM->
LOOPATLT_ITEMSINTOWA_ITEMS.
L_EXKN=WA_ITEMS-MODEL->
*判断数据是否删除,删除时不检查AFCE号
IFIM_DATA_NEW-LOEKZ='
*判断WBS是否为空,当WBS为空时不检查AFCE号;
当WBS不为空时检查AFCE是否为空,为空时报信息.
IFL_EXKN-PS_PSP_PNR<
*只有类型为Q,P/D,A三种类型时才检查AFCE号.
IF(IM_DATA_NEW-KNTTP='
ANDIM_DATA_NEW-PSTYP='
OR(IM_DATA_NEW-KNTTP='
).
IFIM_DATA_NEW-ZZAFCEID='
MESSAGE'
请输入AFCE号码!
TYPE'
E'
最后效果