【三代增强干货一枚】外向交货单Delivery (VL01N)Header屏幕增强
生活随笔
收集整理的這篇文章主要介紹了
【三代增强干货一枚】外向交货单Delivery (VL01N)Header屏幕增强
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先了解一下內向交貨與外向交貨:
1、外向交貨:VL03N;內向交貨:VL33N
2、外向與內向相對于庫存來說的,一個出庫,一個入庫
場景:我們做一個外向交貨單Header Level的一個屏幕增強。 1、SE11 Append Structure 在交貨單抬頭增強需要在Likp中添加新結構
?
增強的結構的字段,我們一般已ZZ / YY開頭。
?
2、SE80創建一個Function Group函數組:YDELIVER_HEAD(Deliver Header:customer Fields)
分別創建兩個Function module:
Y_GET_DATA_DELI_HEAD(get values for screen)
?
source code:
??cs_likp-yyfull? ???= gv_full.
??cs_likp-yypartial??= gv_partial.
??cs_likp-yyveh_no? ?= gv_veh_no.
??cs_likp-yylr_dkt_no = gv_lr_dkt_no.
??cs_likp-yylr_dkt_dt = gv_lr_dkt_dt.
??cs_likp-yydriver? ? = gv_driver.
??cs_likp-yyinote_num = gv_inote_num .
??cs_likp-yyinote_dt??= gv_inote_dt.
??cs_likp-yyinote_cntr = gv_inote_cntr.
??cs_likp-yytrnsp? ?? ?= gv_trnsp. 復制代碼
Y_SET_DATA_DELI_ITEM(set values for screen)
?
source code:
??gv_full? ?? ? = is_likp-yyfull??.
??gv_partial? ? = is_likp-yypartial .
??gv_veh_no? ???= is_likp-yyveh_no??.
??gv_lr_dkt_no??= is_likp-yylr_dkt_no.
??gv_lr_dkt_dt??= is_likp-yylr_dkt_dt .
??gv_driver? ???= is_likp-yydriver .
??gv_inote_num??= is_likp-yyinote_num .
??gv_inote_dt? ?= is_likp-yyinote_dt .
??gv_inote_cntr = is_likp-yyinote_cntr.
??gv_trnsp? ?? ?= is_likp-yytrnsp. 復制代碼
3、創建一個Subscreen屏幕9000
?
畫出屏幕增強需要的字段
?
輸入*,點擊Get From Program按鈕,獲取程序中所有的變量,選中想要的即可
別忘了激活全部元素
4、查找相應的BADI
查找方法請參考: SAP第三代增強BADI的實現方法及查找方式
Delivery Header level:LE_SHP_TAB_CUST_HEAD
Delivery Item level:LE_SHP_TAB_CUST_ITEM
這里Additional tab,我們只需要LE_SHP_TAB_CUST_HEAD
5、SE18 BADI實施
?
在BADI對象的方法中實現我們相應的代碼
?
IF_EX_LE_SHP_TAB_CUST_HEAD~ACTIVATE_TAB_PAGE
??METHOD if_ex_le_shp_tab_cust_head~activate_tab_page.
? ? ef_caption = text-000. " screen caption
? ? ef_program = 'SAPLYDELIVER_HEAD'."FunctionPool:sapl + function group name
? ? ef_position = 4. "tab position
? ? ef_dynpro??= '9000'. "screen number
? ? cs_v50agl_cust = 'X'.
??ENDMETHOD. 復制代碼
IF_EX_LE_SHP_TAB_CUST_HEAD~TRANSFER_DATA_TO_SUBSCREEN
??METHOD if_ex_le_shp_tab_cust_head~transfer_data_to_subscreen.
? ? CALL FUNCTION 'Y_SET_DATA_DELI_ITEM'
? ?? ?EXPORTING
? ?? ???is_likp = is_likp.
??ENDMETHOD. 復制代碼
IF_EX_LE_SHP_TAB_CUST_HEAD~TRANSFER_DATA_FROM_SUBSCREEN
??METHOD if_ex_le_shp_tab_cust_head~transfer_data_from_subscreen.
? ? CALL FUNCTION 'Y_GET_DATA_DELI_HEAD'
? ?? ?IMPORTING
? ?? ???cs_likp = cs_likp.
??ENDMETHOD. 復制代碼
激活代碼,激活BADI對象
這里的FUNCTION的import/export為什么是CS_LIKP、IS_LIKP?能不能自己隨便定義能? 當然不能,我們可以在Interface:IF_EX_LE_SHP_TAB_CUST_HEAD中Parameter中查找我們所需的傳入、傳出參數
6、VL02N測試
F4查找一個存在的交貨單
?
這里就能查看我們增強的屏幕了
?
輸入數據,保存,然后再標準表LIKP就能看到去剛才增強字段的值了
1、外向交貨:VL03N;內向交貨:VL33N
2、外向與內向相對于庫存來說的,一個出庫,一個入庫
場景:我們做一個外向交貨單Header Level的一個屏幕增強。 1、SE11 Append Structure 在交貨單抬頭增強需要在Likp中添加新結構
?
增強的結構的字段,我們一般已ZZ / YY開頭。
?
2、SE80創建一個Function Group函數組:YDELIVER_HEAD(Deliver Header:customer Fields)
分別創建兩個Function module:
Y_GET_DATA_DELI_HEAD(get values for screen)
?
source code:
Y_SET_DATA_DELI_ITEM(set values for screen)
?
source code:
3、創建一個Subscreen屏幕9000
?
畫出屏幕增強需要的字段
?
輸入*,點擊Get From Program按鈕,獲取程序中所有的變量,選中想要的即可
別忘了激活全部元素
4、查找相應的BADI
查找方法請參考: SAP第三代增強BADI的實現方法及查找方式
Delivery Header level:LE_SHP_TAB_CUST_HEAD
Delivery Item level:LE_SHP_TAB_CUST_ITEM
這里Additional tab,我們只需要LE_SHP_TAB_CUST_HEAD
5、SE18 BADI實施
?
在BADI對象的方法中實現我們相應的代碼
?
IF_EX_LE_SHP_TAB_CUST_HEAD~ACTIVATE_TAB_PAGE
IF_EX_LE_SHP_TAB_CUST_HEAD~TRANSFER_DATA_TO_SUBSCREEN
IF_EX_LE_SHP_TAB_CUST_HEAD~TRANSFER_DATA_FROM_SUBSCREEN
激活代碼,激活BADI對象
這里的FUNCTION的import/export為什么是CS_LIKP、IS_LIKP?能不能自己隨便定義能? 當然不能,我們可以在Interface:IF_EX_LE_SHP_TAB_CUST_HEAD中Parameter中查找我們所需的傳入、傳出參數
6、VL02N測試
F4查找一個存在的交貨單
?
這里就能查看我們增強的屏幕了
?
輸入數據,保存,然后再標準表LIKP就能看到去剛才增強字段的值了
總結
以上是生活随笔為你收集整理的【三代增强干货一枚】外向交货单Delivery (VL01N)Header屏幕增强的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【力荐】ABAP常用DEBUG调试代码的
- 下一篇: 5个拓展潜客的创意方法