Quantcast
Channel: SCN: Message List - ABAP Switching, Enhancing, and Adapting Standard Programs
Viewing all articles
Browse latest Browse all 2464

Re: Disable column in sales order

$
0
0

Found a way;

 

The specific problem I faced was how to disable two fields, but let standard mapped data to be displayed in them.

 

 

 

To cater this requirement I used the following;

 

 

Include: MV45AFZZ

 

User Exit Name: USEREXIT_FIELD_MODIFICATION

Enhancement Name: -Any name you want-<br/>

 

 

I created an Enhancement and wrote the following code;

 

 

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


Viewing all articles
Browse latest Browse all 2464

Trending Articles