1

販売注文品目の列全体を無効にする必要があるという要件があります。フィールドはVBAP-ARKTXVBAP-KDMATです。

データを含む列を無効にする方法を見つけましたが、列全体ではありません。

USEREXIT_FIELD_MODIFICATIONを使用して、次のコードを使用してこれを実現しました。

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

列全体を無効にする方法はありますか?

ここに画像の説明を入力

4

3 に答える 3

1

項目を含むテーブル コントロールを調整するのが最も簡単で、最も推奨される方法です。単一のユーザーまたはユーザーのグループに対して実行できます。それ以外の場合は、 SHD0で画面バリアントを作成してみてください。画面上の任意のテーブルの任意の列と任意のフィールドを簡単に非表示にできます。

于 2015-12-09T15:09:17.557 に答える
0

私が直面した特定の問題は、2 つのフィールドを無効にする方法でしたが、標準のマップされたデータがそれらに表示されるようにしました。

この要件を満たすために、私は以下を使用しました。

インクルード: MV45AFZZ
ユーザー出口名: USEREXIT_FIELD_MODIFICATION
拡張名: -任意の名前-

拡張機能を作成し、次のコードを書きました。

"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.
于 2015-12-09T19:13:32.083 に答える
-1

dynpro-designer でできることが 1 つあります。そこで、dynpro-modification として sap-standard-dynpro を修正することができます。ただし、これは次のリリースで上書きされる可能性があります。これもあなたのオプションですか?

于 2015-11-23T14:38:01.083 に答える