供应商主数据屏幕增强XK02,XK03
当年第一次写增强,因参考的文章对没写过增强的人来有点不明。因此才有这篇用于记录
- SE16N LFA1 APPEND STRUCTURE 增加自定义结构
- SPRO 后勤-常规—》业务伙伴—》供应商—》控制—》采用客户自己的主档资料—》准备供应商主档记录免修改增强
英文路径:LOGISTICS-GENERAL àBUSINESS PARTNERàVENDORSàCONTROLàADOPTION OF CUSTOMER’S OWN MASTER DATA FIELDS àPrepare Modification-Free Enhancement of Vendor Master Record
--》执行—》新增条目
SE19 实施BADIàCREATE IMPLEMENTATIONàNEW BADIàBADI NAME àCREATE IMPL 激活—>建立新的IMPL
IF SY-TCODE = 'XK02' OR SY-TCODE = 'XK03'.
CHECK I_SCREEN_GROUP = 'ZV'.
E_ADD_ON_ACTIVE = 'X'.
ENDIF.
接着用SE19 VENDOR_ADD_DATA_CS
输入一开始建立的ZV
注意这三个事件一会我们就要写代码了
想一想,我们刚刚是不是只建立增强方面的东西,那要显示给用户屏幕呢?
没有。为什么没有,因为没建啊 ,所以接下来我们应该先建立一个屏幕,写过TAB页的都知道这个屏幕一定要是子屏幕。
建立一个函数组:然后在函数组中建立屏幕
建立完屏幕后,写第一段代码,在增强中调用对应的屏幕
SE19-ZXK02TEST
双击IF_EX_VENDOR_ADD_DATA_CS~GET_TAXI_SCREEN
写入代码
CASE i_taxi_fcode.
WHEN 'ZV_XK02'.”还记得在SPRO中建立的数据吗?
* e_screen = '0001'.”屏幕号
e_program = 'SAPLZJUNA' ."函数名或程式名.
e_headerscreen_layout = SPACE.
WHEN OTHERS.
ENDCASE.
读取数据
建立一个新的函数和平常建立函数一模一样,,
设置传入值
代码
CLEAR:G_ACTIVITY.",LFA1.
G_ACTIVITY = I_ACTIVITY. "A–>显示DISPLAY;h–>新建;V–>更改这个值是系统固定的
LFA1-IPATH = I_TM_LFA1-IPATH.
LFA1-IDATE = I_TM_LFA1-IDATE.
LFA1-IMONTH = I_TM_LFA1-IMONTH.
写完后肯定报错的,在TOP中加入声明变量
这只是我们自己程序的数据,,写完后还需要和SAP给的接口进行数据交接。
那么先不要看,想一想,接下来该干什么
没错应该在刚刚建立SE19 ZXK02TEST中对应的IF_EX_VENDOR_ADD_DATA_CS~SET_DATA 中写入代码
DATA I_TM TYPE ZXK02_TEST.DATA I_ADDRESS TYPE ZADDRESS." DATA Z_KNVK TYPE FWYT1_TAB .
I_TM-IPATH = I_LFA1-IPATH.
I_TM-IDATE = I_LFA1-IDATE.
I_TM-IMONTH = I_LFA1-IMONTH.
IF FLT_VAL = 'ZV'.
CALL FUNCTION 'ZE_VENDOR_DATA_READ' “调用刚刚写的函数
EXPORTING
I_ACTIVITY = I_ACTIVITY
I_TM_LFA1 = I_TM.
ENDIF.
“______________________________________读取完成____________________________
“保存数据建立新的函数,操作与读取一样,只是传入变成传出
E_TM-IPATH = LFA1-IPATH.
E_TM-IDATE = LFA1-IDATE.
E_TM-IMONTH = LFA1-IMONTH.
搞定
然后再想想,读取数据后接着在做什么?
回到SE19 只是换了个事件
IF_EX_VENDOR_ADD_DATA_CS~GET_DATA
DATA:S_TM TYPE ZXK02_TEST.
IF FLT_VAL = 'ZV' .
CALL FUNCTION 'ZE_VENDOR_DATA_SAVE'
IMPORTING
E_TM = S_TM
.
S_LFA1-IPATH = S_TM-IPATH.
S_LFA1-IDATE = S_TM-IDATE.
S_LFA1-IMONTH = S_TM-IMONTH.
endif.
激活,完成! 执行XK02不出意外增强屏幕到这一步算是完成了
如果需要判断值是否正确可以在保存写,不过不建立在此写,后面会加多一篇对值的判断!不是不想写在同一篇,实在是要分开了,不然别人搜的是非屏幕增强就搜不到文章了