2015-11-23 261 views
0

我有一個要求,即需要禁用銷售訂單行項目中的全部列。字段爲VBAP-ARKTXVBAP-KDMAT禁用銷售訂單中的列SAP

我已經找到了禁用其中的數據列的方法,但不是整列。

我用USEREXIT_FIELD_MODIFICATION使用下面的代碼來實現這個;

IF sy-TCODE = 'VA02'. 
    IF screen-name = 'VBAP-KDMAT' . 
     screen-INPUT = 0. 
     modify screen. 
    ENDIF. 
ENDIF. 

有沒有辦法禁用整列?

enter image description here

回答

0

我面對的具體問題是如何禁用兩個字段,但讓標準映射數據顯示在它們中。

爲了迎合這一要求,我使用了以下內容;

包括:MV45AFZZ
用戶出口名稱:USEREXIT_FIELD_MODIFICATION
增強名稱: - 任何名字你want-

我創建的增強,並寫了下面的代碼;

"Specify the condition 
IF VBAK-VKORG = '1234' AND (sy-TCODE = 'VA02' OR sy-TCODE = 'VA01') AND (screen-name = 'VBAP-KDMAT' OR screen-name = 'VBAP-ARKTX'). 

     screen-input = 0."disable input 
     MODIFY SCREEN. 

     DATA: i_tab_mara TYPE TABLE OF MARA WITH HEADER LINE. 
     DATA: l_maktx TYPE MAKT-MAKTX. 
     DATA: WA_MARA LIKE LINE OF i_tab_mara. 

     DATA: i_tab_vbap TYPE TABLE OF VBAP WITH HEADER LINE. 
     DATA: wa_vbap LIKE LINE OF i_tab_vbap. 

      IF sy-TCODE = 'VA01' . 

      SELECT SINGLE * from MARA INTO WA_MARA WHERE MATNR eq VBAP-MATNR. 

      SELECT MAKTX FROM MAKT INTO l_maktx WHERE MATNR eq VBAP-MATNR. 
      ENDSELECT. 

      VBAP-KDMAT = WA_MARA-KDMAT. 
      VBAP-ARKTX = l_maktx. 

      MODIFY SCREEN. 

      ELSEIF sy-TCODE = 'VA02' . 

      SELECT SINGLE * FROM VBAP INTO WA_VBAP WHERE VBELN eq VBAK-VBELN AND POSNR eq VBAP-POSNR. 

      IF WA_VBAP-ARKTX eq ''." Check if the fileds are empty, otherwise old data is overwritten 

      SELECT MAKTX FROM MAKT INTO l_maktx WHERE MATNR eq VBAP-MATNR. 
      ENDSELECT. 

      VBAP-ARKTX = l_maktx. 

      MODIFY SCREEN. 

      ENDIF. 

      IF WA_VBAP-KDMAT eq ''." Check if the fileds are empty, otherwise old data is overwritten 

      SELECT SINGLE * from MARA INTO WA_MARA WHERE MATNR eq VBAP-MATNR. 

      VBAP-KDMAT = WA_MARA-KDMAT. 

      MODIFY SCREEN. 

      ENDIF. 
    ENDIF. 
ENDIF. 
0

有一兩件事,那你可以在dynpro設計師做。在那裏您可以將sap-standard-dynpro修改爲dynpro修改。不過,這可能會被下一個版本覆蓋。這也是你的選擇嗎?

1

Adjusting table control其中包含項目是最簡單和最推薦的方式。它可以爲單個用戶或一組用戶完成。 否則,嘗試在SHD0中創建一個screen variant。它可以輕鬆隱藏屏幕上任何表格和任何字段的任何列。

相關問題