SAP采购申请屏幕增强.pdf

上传人:wj 文档编号:3436782 上传时间:2023-05-05 格式:PDF 页数:15 大小:266.05KB
下载 相关 举报
SAP采购申请屏幕增强.pdf_第1页
第1页 / 共15页
SAP采购申请屏幕增强.pdf_第2页
第2页 / 共15页
SAP采购申请屏幕增强.pdf_第3页
第3页 / 共15页
SAP采购申请屏幕增强.pdf_第4页
第4页 / 共15页
SAP采购申请屏幕增强.pdf_第5页
第5页 / 共15页
SAP采购申请屏幕增强.pdf_第6页
第6页 / 共15页
SAP采购申请屏幕增强.pdf_第7页
第7页 / 共15页
SAP采购申请屏幕增强.pdf_第8页
第8页 / 共15页
SAP采购申请屏幕增强.pdf_第9页
第9页 / 共15页
SAP采购申请屏幕增强.pdf_第10页
第10页 / 共15页
SAP采购申请屏幕增强.pdf_第11页
第11页 / 共15页
SAP采购申请屏幕增强.pdf_第12页
第12页 / 共15页
SAP采购申请屏幕增强.pdf_第13页
第13页 / 共15页
SAP采购申请屏幕增强.pdf_第14页
第14页 / 共15页
SAP采购申请屏幕增强.pdf_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

SAP采购申请屏幕增强.pdf

《SAP采购申请屏幕增强.pdf》由会员分享,可在线阅读,更多相关《SAP采购申请屏幕增强.pdf(15页珍藏版)》请在冰点文库上搜索。

SAP采购申请屏幕增强.pdf

SAP采购申请采购申请ME51n,ME52n,ME53n屏幕增强屏幕增强使用增强:

MEREQ001购买申请中的客户自有数据1、如果需要向PR中加入自定义字段,事务码se11,打开透明表EBAN,双击include:

CI_EBANDB,创建结构CI_EBANDB,维护自定义的字段。

2、事务码CMODcreateproject:

ZMMpr001,在Enhancementassignment中添加增强MEREQ001,保存。

3、事务码smod:

MEREQ001,打开如下图,有三个functionmodule,还有screenarea,可知screen:

0111便是预留的屏幕,可以在其函数组中创建screen0111,然后在其上画一些需要的字段栏位就ok了。

双击其中一个functionmodule,然后点击displayobjectlist按钮,显示如下图在函数组XM02中createscreen0111,然后在其上画一些需要的字段栏位,注意0111设置为subscreen。

激活,CMOD中激活ZMMpr001,此时在事务码ME51n中就能看到多了一个客户数据tab页,相应me52n,me53n等也有。

到此为止,屏幕做好了,但是要在屏幕栏位上输入数据并能保存到透明表,及显示的时候能从透明表读出到屏幕栏位,就需要在上述三个functionmodule中写代码。

4、在函数组XM02中,有include:

ZXM02TOP,目前是空的,createit,添加代码:

data:

gv_trtyptypeaktvt.DATA:

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

TABLES:

ci_ebandb.DATA:

i_mereq_itemTYPEmereq_item.CALLMETHODim_req_item-get_activityRECEIVINGre_aktvt=gv_trtyp.CASEgv_trtyp.WHENA.fl_input=space.OutputonlyWHENV.fl_input=X.Input/OutputENDCASE.IFim_req_itemISINITIAL.CLEAR:

ci_ebandb.ELSE.i_mereq_item=im_req_item-get_data().MOVE-CORRESPONDINGi_mereq_itemTOci_ebandb.ENDIF.激活EXIT_SAPLMEREQ_003中的include,添加下面代码:

DATA:

i_mereq_itemTYPEmereq_item.IFNOTim_req_itemISINITIAL.i_mereq_item=im_req_item-get_data().MOVE-CORRESPONDINGci_ebandbTOi_mereq_item.CALLMETHODim_req_item-set_data(i_mereq_item).ex_changed=X.ENDIF.最后对上述建立的subscreen0111添加PBO,如下代码:

*-*INCLUDEZXM02O01.*-*&-*&ModuleSTATUS_0111OUTPUT*&-*text*-*MODULEstatus_0111OUTPUT.*SETPF-STATUSxxxxxxxx.*SETTITLEBARxxx.CHECKfl_inputISINITIAL.LOOPATSCREEN.screen-input=0.MODIFYSCREEN.ENDLOOP.ENDMODULE.STATUS_0111OUTPUTOK,到此为止,ME51n等的屏幕增强就完成了,屏幕0111上栏位可以保存到eban中,修改,显示等。

这是比较简单的逻辑,如果有其他复杂的要求,可以对上述代码大做文章。

采购申请增强CODE:

SMOD.CMOD增强:

MEREQ001从SE11进入EBAN双击CI_EBANDB全局定义*&-*&包括ZXM02TOP*&-*DATA:

I_EBKNTYPEMEREQ_ITEM.DATA:

GV_TRTYPTYPEAKTVT.DATA:

FL_INPUTTYPEFLAG.DATALT_EXKNTYPEEXKN.DATAL_EXKNTYPEEXKN.DATA:

I_MEREQ_ITEMTYPEMEREQ_ITEM.TABLES:

ZCJ30.DATA:

TAB_G_EBKNLIKESTANDARDTABLEOFEBKNWITHHEADERLINE.DATA:

TAB_G_EBANLIKESTANDARDTABLEOFEBANWITHHEADERLINE.DATA:

TAB_G_EBKNNEWLIKESTANDARDTABLEOFEBKNWITHHEADERLINE.DATA:

TAB_G_EBANNEWLIKESTANDARDTABLEOFEBANWITHHEADERLINE.DATA:

G_BADATTYPEEXKN-AEDAT.*WBS状态控制用DATA:

JSTATLIKESTANDARDTABLEOFJSTATWITHHEADERLINE.DATA:

G_OBJNRLIKEPRPS-OBJNR.读取数据:

EXIT_SAPLMEREQ_001.”INCLUDEZXM02U01.*&-*&包括ZXM02U01*&-*TABLES:

CI_EBANDB.DATA:

I_MEREQ_ITEMTYPEMEREQ_ITEM.DATALT_ITEMSTYPEMMPUR_ACCOUNTING_LIST.DATAWA_ITEMSLIKELINEOFLT_ITEMS.*获取输入输出状态CALLMETHODIM_REQ_ITEM-GET_ACTIVITYRECEIVINGRE_AKTVT=GV_TRTYP.CASEGV_TRTYP.WHENA.FL_INPUT=SPACE.OutputonlyWHENV.FL_INPUT=X.Input/OutputWHENH.IFSY-TCODE=ME51N.FL_INPUT=X.Input/OutputENDIF.ENDCASE.IFIM_REQ_ITEMISINITIAL.CLEAR:

CI_EBANDB.ELSE.*取出AFCE号I_MEREQ_ITEM=IM_REQ_ITEM-GET_DATA().MOVE-CORRESPONDINGI_MEREQ_ITEMTOCI_EBANDB.MOVEI_MEREQ_ITEMTOI_EBKN.*取出WBSLT_ITEMS=IM_REQ_ITEM-IF_ACCT_CONTAINER_MMGET_ITEMS().LOOPATLT_ITEMSINTOWA_ITEMS.LT_EXKN=WA_ITEMS-MODEL-GET_EXKN().ENDLOOP.ENDIF.*IFSY-UNAME=CHENHONGJIAO.*BREAK-POINT.*DATA:

LCL_REF_HEADERTYPEREFTOIF_PURCHASE_REQUISITION.*DATA:

L_MEREQ_HEADERTYPEMEREQ_HEADER.*DATA:

LCL_RELEASE_STRATEGY_MMTYPEREFTOIF_RELEASE_STRATEGY_MM.*DATA:

LCL_RELEASE_STATE_MMTYPEREFTOIF_RELEASE_STATE_MM.*取抬头数据*LCL_REF_HEADER=IM_REQ_ITEM-GET_REQUISITION().*L_MEREQ_HEADER=LCL_REF_HEADER-GET_DATA().*CALLMETHODIM_REQ_ITEM-IF_RELEASABLE_MMGET_DATA*IMPORTING*EX_STRATEGY=LCL_RELEASE_STRATEGY_MM*EX_STATE=LCL_RELEASE_STATE_MM.*ENDIF.存取数据:

EXIT_SAPLMEREQ_003.”INCLUDEZXM02U03.*&-*&包括ZXM02U03*&-*DATA:

I_MEREQ_ITEMTYPEMEREQ_ITEM.*保存AFCE数据IFNOTIM_REQ_ITEMISINITIAL.I_MEREQ_ITEM=IM_REQ_ITEM-GET_DATA().MOVE-CORRESPONDINGCI_EBANDBTOI_MEREQ_ITEM.CALLMETHODIM_REQ_ITEM-SET_DATA(I_MEREQ_ITEM).EX_CHANGED=X.ENDIF.增强屏幕:

SAPLXM020111INCLUDEZXM02ZZZ.SubprogramsandModulesDATA:

G_PSPIDLIKEPROJ-PSPID,G_PSPNRLIKEPRPS-PSPNR,G_BUKRSLIKET001-BUKRS,ZAFCEDESCRLIKEZCJ30-AFCEDESCR,AFCE说明ZZAMOUNT(20),G_ZZAMOUNTLIKEZCJ30-ZAMOUNT.人民币金额DATA:

BEGINOFTAB_G_ZZAFCEIDOCCURS0,AFCEIDLIKEZCJ30-AFCEID,存货号ENDOFTAB_G_ZZAFCEID.*-下拉列表定义TYPE-POOLSVRM.DATA:

FNAMETYPEVRM_ID,VVATYPEVRM_VALUES,LVVALIKELINEOFVVA.DATA:

L_TTYPEI.*&-*&ModuleSTATUS_0111OUTPUT*&-*text*-*MODULESTATUS_0111OUTPUT.*SETPF-STATUSxxxxxxxx.*SETTITLEBARxxx.*判断是否输出AFCE*只有类型为Q,P/D,A三种类型时才输入AFCE号.IF(I_EBKN-KNTTP=QANDI_EBKN-PSTYP=0)OR(I_EBKN-KNTTP=PANDI_EBKN-PSTYP=9)OR(I_EBKN-KNTTP=AANDI_EBKN-PSTYP=0ANDLT_EXKN-PS_PSP_PNR00000000).IFFL_INPUTISINITIAL.LOOPATSCREEN.SCREEN-INPUT=0.MODIFYSCREEN.ENDLOOP.PERFORMAFCE_DATA.AFCE帮助ELSE.*当数据删除时AFCE号不输入状态IFI_EBKN-LOEKZ=X.LOOPATSCREEN.SCREEN-INPUT=0.MODIFYSCREEN.ENDLOOP.ENDIF.PERFORMAFCE_DATA.AFCE帮助ENDIF.ELSE.LOOPATSCREEN.SCREEN-ACTIVE=0.MODIFYSCREEN.ENDLOOP.ENDIF.ENDMODULE.STATUS_0111OUTPUT*&-*&FormAFCE_DATA*&-*text*-*-p1text*-p2text*-*FORMAFCE_DATA.CLEAR:

G_PSPID,G_PSPNR,TAB_G_ZZAFCEID,TAB_G_ZZAFCEID,VVA,VVA,ZZAMOUNT,G_ZZAMOUNT,ZAFCEDESCR.G_PSPNR=LT_EXKN-PS_PSP_PNR.*根据WBS查找项目SELECTSINGLEPROJPSPIDINTOG_PSPIDFROMPROJINNERJOINPRPSONPRPSPSPHI=PROJPSPNRWHEREPRPSPSPNR=G_PSPNR.*根据分配预算项目表取出AFCE号SELECTAFCEIDFROMZCJ30INTOCORRESPONDINGFIELDSOFTABLETAB_G_ZZAFCEIDWHEREPSPID=G_PSPIDANDAFCEID.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.ENDLOOP.CALLFUNCTIONVRM_SET_VALUESEXPORTINGID=FNAMEVALUES=VVA.*公司IFI_EBKN-ZZAFCEIDISNOTINITIAL.CLEAR:

G_BUKRS.IFG_PSPID+4

(2)=00.G_BUKRS=G_PSPID+2

(2).ELSE.G_BUKRS=G_PSPID+2(4).ENDIF.*根据AFCE号取出描述,金额SELECTSINGLEZAMOUNTDESCRFROMZTAFCEINTO(G_ZZAMOUNT,ZAFCEDESCR)WHERECOMID=G_BUKRSANDAFCEID=I_EBKN-ZZAFCEID.IFSY-SUBRC=0.ZZAMOUNT=G_ZZAMOUNT.CONDENSEZZAMOUNT.ENDIF.ENDIF.ENDFORM.AFCE_DATA检查数据:

EXIT_SAPLMEREQ_005.”INCLUDEZXM02U05.*&-*&包括ZXM02U05*&-*BREAK-POINT.DATALT_ITEMSTYPEMMPUR_ACCOUNTING_LIST.DATAWA_ITEMSLIKELINEOFLT_ITEMS.DATA:

G_PSPID1LIKEPROJ-PSPID.G_BADAT=20110105.*Startofcorrectionby*取了WBS元素LT_ITEMS=IM_REQ_ITEM-IF_ACCT_CONTAINER_MMGET_ITEMS().CLEAR:

L_EXKN.LOOPATLT_ITEMSINTOWA_ITEMS.L_EXKN=WA_ITEMS-MODEL-GET_EXKN().ENDLOOP.IFIM_DATA_NEW-BADAT=G_BADAT.*判断数据是否删除,删除时不检查AFCE号IFIM_DATA_NEW-LOEKZ=.*判断WBS是否为空,当WBS为空时不检查AFCE号;当WBS不为空时检查AFCE是否为空,为空时报信息.IFL_EXKN-PS_PSP_PNR00000000.*检查WBS是否下达IF(SY-TCODE=ME51NORSY-TCODE=ME52NORSY-TCODE=ME53N)AND(SY-UCOMM=MESAVEORSY-UCOMM=MECHECKDOC).CLEAR:

JSTAT,JSTAT,G_OBJNR.CONCATENATEPRL_EXKN-PS_PSP_PNRINTOG_OBJNR.CALLFUNCTIONSTATUS_READEXPORTINGCLIENT=SY-MANDTOBJNR=G_OBJNRONLY_ACTIVE=TABLESSTATUS=JSTATEXCEPTIONSOBJECT_NOT_FOUND=1OTHERS=2.READTABLEJSTATWITHKEYSTAT=I0002.IFSY-SUBRC0.MESSAGEE001(00)WITH请先WBS元素下达!

.ENDIF.*BREAKCHENHONGJIAO.*只有类型为Q,P/D,A三种类型时才检查AFCE号.IF(IM_DATA_NEW-KNTTP=QANDIM_DATA_NEW-PSTYP=0)OR(IM_DATA_NEW-KNTTP=PANDIM_DATA_NEW-PSTYP=9)OR(IM_DATA_NEW-KNTTP=AANDIM_DATA_NEW-PSTYP=0).IFIM_DATA_NEW-ZZAFCEID=.MESSAGE请输入AFCE号码!

TYPEE.ELSE.CLEAR:

G_PSPID1.*根据WBS查找项目SELECTSINGLEPROJPSPIDINTOG_PSPID1FROMPROJINNERJOINPRPSONPRPSPSPHI=PROJPSPNRWHEREPRPSPSPNR=L_EXKN-PS_PSP_PNR.*根据分配预算项目表取出AFCE号SELECTSINGLE*FROMZCJ30WHEREPSPID=G_PSPID1ANDAFCEID=IM_DATA_NEW-ZZAFCEID.IFSY-SUBRC0.CLEAR:

CI_EBANDB-ZZAFCEID.I_MEREQ_ITEM=IM_REQ_ITEM-GET_DATA().MOVE-CORRESPONDINGCI_EBANDBTOI_MEREQ_ITEM.CALLMETHODIM_REQ_ITEM-SET_DATA(I_MEREQ_ITEM).ENDIF.ENDIF.ENDIF.ENDIF.ELSEIFIM_DATA_NEW-ZZAFCEIDANDL_EXKN-PS_PSP_PNR=00000000.CLEAR:

CI_EBANDB-ZZAFCEID.I_MEREQ_ITEM=IM_REQ_ITEM-GET_DATA().MOVE-CORRESPONDINGCI_EBANDBTOI_MEREQ_ITEM.CALLMETHODIM_REQ_ITEM-SET_DATA(I_MEREQ_ITEM).ENDIF.ENDIF.ENDIF.最后检查报MESSAGE使用BADI:

ZME_PROCESS_REQ_CUSTMETHODIF_EX_ME_PROCESS_REQ_CUSTCHECK.DATA:

LT_REQUISITION_ITEMSTYPEMMPUR_REQUISITION_ITEMS.DATA:

MMPUR_ACCOUNTING_LISTTYPEMMPUR_ACCOUNTING_LIST,RE_EXKNTYPEEXKN.DATA:

LS_MEREQITEMTYPEMEREQ_ITEM.DATA:

G_BADATTYPEEBAN-BADAT.G_BADAT=20110105.FIELD-SYMBOLS:

TYPELINEOFMMPUR_REQUISITION_ITEMS.FIELD-SYMBOLS:

TYPELINEOFMMPUR_ACCOUNTING_LIST.*抬头CALLMETHODIM_HEADER-GET_ITEMSRECEIVINGRE_ITEMS=LT_REQUISITION_ITEMS.LOOPATLT_REQUISITION_ITEMSASSIGNING.*AFCE号EBANCALLMETHOD-ITEM-GET_DATA“AFCE号EBANRECEIVINGRE_DATA=LS_MEREQITEM.*WBS取数EBkn*AccountingData:

CALLMETHOD-ITEM-IF_ACCT_CONTAINER_MMGET_ITEMRECEIVINGRE_ITEMS=MMPUR_ACCOUNTING_LIST.*FromIF_PURCHASE_REQUISITION_ITEM*.LOOPATMMPUR_ACCOUNTING_LISTASSIGNING.CALLMETHOD-MODEL-GET_EXKNRECEIVINGRE_EXKN=RE_EXKN.*fromIF_ACCOUNTING_MODEL_MMENDLOOP.IFLS_MEREQITEM-BADAT=G_BADAT.*判断数据是否删除,删除时不检查AFCE号IFLS_MEREQITEM-LOEKZ=.*判断WBS是否为空,当WBS为空时不检查AFCE号;当WBS不为空时检查AFCE是否为空,为空时报信息.IFRE_EXKN-PS_PSP_PNR00000000.IF(SY-TCODE=ME51NORSY-TCODE=ME52NORSY-TCODE=ME53N)AND(SY-UCOMM=MESAVEORSY-UCOMM=MECHECKDOC).*只有类型为Q,P/D,A三种类型时才检查AFCE号.IF(LS_MEREQITEM-KNTTP=QANDLS_MEREQITEM-PSTYP=0)OR(LS_MEREQITEM-KNTTP=PANDLS_MEREQITEM-PSTYP=9)OR(LS_MEREQITEM-KNTTP=AANDLS_MEREQITEM-PSTYP=0).IFLS_MEREQITEM-ZZAFCEID=.MESSAGE请输入AFCE号码!

TYPEE.ENDIF.ENDIF.ENDIF.ENDIF.ENDIF.ENDIF.ENDLOOP.最后效果

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2