供應商主數據屏幕增強XK02,XK03


       當年第一次寫增強,因參考的文章對沒寫過增強的人來有點不明。因此才有這篇用於記錄

  1. SE16N LFA1 APPEND STRUCTURE 增加自定義結構
  2. 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不出意外增強屏幕到這一步算是完成了

 

如果需要判斷值是否正確可以在保存寫,不過不建立在此寫,后面會加多一篇對值的判斷!不是不想寫在同一篇,實在是要分開了,不然別人搜的是非屏幕增強就搜不到文章了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM