當年第一次寫增強,因參考的文章對沒寫過增強的人來有點不明。因此才有這篇用於記錄
- 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不出意外增強屏幕到這一步算是完成了
如果需要判斷值是否正確可以在保存寫,不過不建立在此寫,后面會加多一篇對值的判斷!不是不想寫在同一篇,實在是要分開了,不然別人搜的是非屏幕增強就搜不到文章了