2015-11-23 219 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。它可以轻松隐藏屏幕上任何表格和任何字段的任何列。

相关问题