(轉)實戰物料主數據(MM01/MM02/MM03)屏幕增強 .


無意中看到的,將來沒准用得上,轉一下。

 

原文地址:http://blog.chinaunix.net/u2/66669/showart_1273879.html

 

1. 用事務代碼OMT3C,(或者用SPRO進入,后勤-常規->物料主記錄->配置物料主記錄->創建定制子屏幕的程序)創建函數功能組,如ZMGD1,然后保存.
 
2. 用事務代碼SE80進入,選擇函數組ZMGD1,在屏幕0001里面建立自己的布局.
 
3. 書寫屏幕的PBO和PAI.
PROCESS BEFORE OUTPUT.
* MM01時限制輸入狀態
  MODULE disable_fields.
* MM02/MM03時把數據從自定義表里取出來,賦值給屏幕相應的字段
  MODULE get_data.
 
PROCESS AFTER INPUT.
* 在這里把數據導出到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. 用事務代碼OMT3B,(或者用SPRO進入,后勤-常規->物料主記錄->配置物料主記錄->定義每個屏幕序列的數據屏幕的結構)屏幕順序中,選擇右邊的21,然后點數據屏幕,然后選中右邊的07屏幕,再點子屏幕.然后在右邊的TC中調整SAPLZMGD1/0001在07屏幕的順序.
 
5.建立一個項目,組件為MGA00001,在出口EXIT_SAPLMGMU_001中書寫相關的代碼,然后激活.
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.
 
最后利用事務代碼MM01/MM02/MM03測試一下,看看效果如何.


免責聲明!

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



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