SAP 物料主数据屏幕增强
生活随笔
收集整理的這篇文章主要介紹了
SAP 物料主数据屏幕增强
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 用事務(wù)代碼OMT3C,(或者用SPRO進(jìn)入,后勤-常規(guī)->物料主記錄->配置物料主記錄->創(chuàng)建定制子屏幕的程序)創(chuàng)建函數(shù)功能組,如ZMGD1,然后保存.
?
2. 用事務(wù)代碼SE80進(jìn)入,選擇函數(shù)組ZMGD1,在屏幕0001里面建立自己的布局.
?
3. 書(shū)寫(xiě)屏幕的PBO和PAI.
PROCESS BEFORE OUTPUT.
* MM01時(shí)限制輸入狀態(tài)
??MODULE disable_fields.
* MM02/MM03時(shí)把數(shù)據(jù)從自定義表里取出來(lái),賦值給屏幕相應(yīng)的字段
??MODULE get_data.
?
PROCESS AFTER INPUT.
* 在這里把數(shù)據(jù)導(dǎo)出到MEMORY
??MODULE assign_data.
?
MODULE disable_fields.
??IF SY-TCODE = 'MM03'.
????LOOP AT SCREEN.
??????SCREEN-INPUT = '0'.
??????MODIFY SCREEN.
????ENDLOOP.
??ENDIF.
ENDMODULE.
?
MODULE GET_DATA OUTPUT.
??TABLES: ZVPM_SAP_ENH.
??IF SY-TCODE = 'MM02' OR SY-TCODE = 'MM03'.
????GET PARAMETER ID 'MAT' FIELD W_MATNR.
????SELECT SINGLE ZCZBM FROM??ZVPM_SAP_ENH
????????????INTO ZVPM_SAP_ENH-ZCZBM
????????????WHERE MATNR = W_MATNR.
??ENDIF.
ENDMODULE.???
?
MODULE ASSIGN_DATA INPUT.
??EXPORT ZVPM_SAP_ENH TO MEMORY ID 'ZVPM_SAP_ENH'.
ENDMODULE.??
?
4. 用事務(wù)代碼OMT3B,(或者用SPRO進(jìn)入,后勤-常規(guī)->物料主記錄->配置物料主記錄->定義每個(gè)屏幕序列的數(shù)據(jù)屏幕的結(jié)構(gòu))屏幕順序中,選擇右邊的21,然后點(diǎn)數(shù)據(jù)屏幕,然后選中右邊的07屏幕,再點(diǎn)子屏幕.然后在右邊的TC中調(diào)整SAPLZMGD1/0001在07屏幕的順序.
?
5.建立一個(gè)項(xiàng)目,組件為MGA00001,在出口EXIT_SAPLMGMU_001中書(shū)寫(xiě)相關(guān)的代碼,然后激活.
TABLES: ZVPM_SAP_ENH.
IF SY-UCOMM = 'BU' OR SY-UCOMM = 'YES'.
????IMPORT ZVPM_SAP_ENH FROM MEMORY ID 'ZVPM_SAP_ENH'.
????ZVPM_SAP_ENH-MATNR = CMARA-MATNR.
????MODIFY ZVPM_SAP_ENH FROM ZVPM_SAP_ENH.
ENDIF.
?
?
2. 用事務(wù)代碼SE80進(jìn)入,選擇函數(shù)組ZMGD1,在屏幕0001里面建立自己的布局.
?
3. 書(shū)寫(xiě)屏幕的PBO和PAI.
PROCESS BEFORE OUTPUT.
* MM01時(shí)限制輸入狀態(tài)
??MODULE disable_fields.
* MM02/MM03時(shí)把數(shù)據(jù)從自定義表里取出來(lái),賦值給屏幕相應(yīng)的字段
??MODULE get_data.
?
PROCESS AFTER INPUT.
* 在這里把數(shù)據(jù)導(dǎo)出到MEMORY
??MODULE assign_data.
?
MODULE disable_fields.
??IF SY-TCODE = 'MM03'.
????LOOP AT SCREEN.
??????SCREEN-INPUT = '0'.
??????MODIFY SCREEN.
????ENDLOOP.
??ENDIF.
ENDMODULE.
?
MODULE GET_DATA OUTPUT.
??TABLES: ZVPM_SAP_ENH.
??IF SY-TCODE = 'MM02' OR SY-TCODE = 'MM03'.
????GET PARAMETER ID 'MAT' FIELD W_MATNR.
????SELECT SINGLE ZCZBM FROM??ZVPM_SAP_ENH
????????????INTO ZVPM_SAP_ENH-ZCZBM
????????????WHERE MATNR = W_MATNR.
??ENDIF.
ENDMODULE.???
?
MODULE ASSIGN_DATA INPUT.
??EXPORT ZVPM_SAP_ENH TO MEMORY ID 'ZVPM_SAP_ENH'.
ENDMODULE.??
?
4. 用事務(wù)代碼OMT3B,(或者用SPRO進(jìn)入,后勤-常規(guī)->物料主記錄->配置物料主記錄->定義每個(gè)屏幕序列的數(shù)據(jù)屏幕的結(jié)構(gòu))屏幕順序中,選擇右邊的21,然后點(diǎn)數(shù)據(jù)屏幕,然后選中右邊的07屏幕,再點(diǎn)子屏幕.然后在右邊的TC中調(diào)整SAPLZMGD1/0001在07屏幕的順序.
?
5.建立一個(gè)項(xiàng)目,組件為MGA00001,在出口EXIT_SAPLMGMU_001中書(shū)寫(xiě)相關(guān)的代碼,然后激活.
TABLES: ZVPM_SAP_ENH.
IF SY-UCOMM = 'BU' OR SY-UCOMM = 'YES'.
????IMPORT ZVPM_SAP_ENH FROM MEMORY ID 'ZVPM_SAP_ENH'.
????ZVPM_SAP_ENH-MATNR = CMARA-MATNR.
????MODIFY ZVPM_SAP_ENH FROM ZVPM_SAP_ENH.
ENDIF.
?
最后利用事務(wù)代碼MM01/MM02/MM03測(cè)試一下,看看效果如何.
總結(jié)
以上是生活随笔為你收集整理的SAP 物料主数据屏幕增强的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LSMW批导数据文件注意
- 下一篇: 采购组织0001不对工厂1000负责