REF: http://scn.sap.com/message/9018870#9018870
今天在VA02中增加一个按钮,用于触发到OA流程审批,参考了上面网页,记录如下:
1) create new program (ZVA_GUI_STATUS for example)
****SE38 创建一个新程序,用于存放增加按钮后的GUI STATUS(如:ZVA_GUI_STATUS,下文中将用到此程序名称,可按自己习惯命名).
2) copy GUI statuses A0 (for VA01) and A02 (for VA02) from SAPMV45B into ZVA_GUI_STATUS with the same names.
****SE38 从程序中SAPMV45B将GUI STATUS:A02复制到第一步创建的新程序中(我只改VA02,如需要同时改VA01,需要同时将GUI STATUS:A0复制过去)
3) change those statuses however u want (create new function code for SEARCH button, &SEARCH for example)
****SE38 在新程序ZVA_GUI_STATUS中将需要的按钮增加到GUI STATUS中,激活
4) create enhancement option in the end of CUA_SETZEN form in MV45AF0C_CUA_SETZEN include with code like this if MODUL-POOL eq 'SAPMV45B'. if T185V-STATUS eq 'A0' or T185V-STATUS eq 'A02'. SET PF-STATUS T185V-STATUS EXCLUDING CUA_EXCLUDE OF PROGRAM 'ZVA_GUI_STATUS'. endif. endif.
****SE38 在程序MV45AF0C_CUA_SETZEN的FROM CUA_SETZEN结尾处,加入代码,替代原GUI STATUS.
5) u can handle this function code at the begin of FORM fcode_bearbeiten of MV45AF0F_FCODE_BEARBEITEN include if fcode eq '&SEARCH'. ... endif.
****SE38 在程序MV45AF0F_FCODE_BEARBEITEN的FORM FCODE_BEARBEITEN开头处,加入代码,拦截fcode为你新增按钮的fcode事件,写逻辑触发对应事件.
1.按上面5步做完后,测试点击新增按钮,系统DUMP
****解决:进入TCODE:VFBS,输入程序:SAPMV45B,选择功能代码,修改,参考系统按钮UER1,增加了同样的3条记录,最后程序运行正常
2.在FCODE_BEARBEITEN中运行了对应的代码后,会继续往后面运行,最终报错
****这个问题没有最终解决,有高手知道如何处理,提点一下 ****临时解决,在第5步的拦截的代码最后,利用RETURN.退回程序