簡體   English   中英

禁用 VA01 中的列

[英]Disable Column in VA01

我有一個要求,我需要禁用銷售訂單行項目中的完整列。 字段是VBAP-ARKTXVBAP-KDMAT

我找到了禁用包含數據的列的方法,但不是整個列。

我使用USEREXIT_FIELD_MODIFICATION使用以下代碼實現此目的;

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

有沒有辦法禁用整個列?

在此處輸入圖片說明

調整包含項目的表格控件是最簡單也是最推薦的方法。 它可以為單個用戶或一組用戶完成。 否則,嘗試在 SHD0 中創建屏幕變體 它允許輕松隱藏任何表格的任何列和屏幕上的任何字段。

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

為了滿足這個要求,我使用了以下內容;

包括:MV45AFZZ
用戶出口名稱:USEREXIT_FIELD_MODIFICATION
增強名稱:-您想要的任何名稱-

我創建了一個 Enhancement 並編寫了以下代碼;

"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.

您可以在 dynpro-designer 中做一件事。 在那里您可以將 sap-standard-dynpro 修改為 dynpro-modification。 然而,這可能會被下一個版本覆蓋。 這也是您的選擇嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM