Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8122

Re: Can we show possible set of values for a field without pressing F4 button on input screen

$
0
0

hi vijaykumar,

 

based on your requirement I have tried to fulfill your requirement.

 

user will select material number by pressing F4

user will select material type by pressing F4 and once selects material type he will get a list of plants automatically without pressing F4.

 

Can you have a look at this code.May be it will help you.

 

---------------------------------------------------------------------

 

REPORT  ZR_F4_HELP2.

PARAMETERS: P_MATNR TYPE MARA-MATNR,
             P_MTART TYPE C LENGTH 20, "MARA-MTART,
             P_WERKS TYPE T001W-WERKS.

TYPES : begin of ty ,
           mtart type t134-mtart,
           mtbez type t134t-mtbez,
           werks type T001W-werks,
           name1 type T001W-name1,
         end of ty.

TYPES : begin of ty1 ,         
           werks type T001W-werks,
           name1 type T001W-name1,
           mtart type t134-mtart,
           mtbez type t134t-mtbez,
         end of ty1.

   data: itab TYPE STANDARD TABLE OF ty,
         itab1 TYPE STANDARD TABLE OF ty1,
         dynfields type table of dynpread with header line,
         lt_fields TYPE STANDARD TABLE OF dfies ,
         lt_mapping TYPE STANDARD TABLE OF dselc.

DATA: itab_return      TYPE TABLE OF ddshretval,
       wa_return     TYPE ddshretval.

    at selection-screen on value-request for p_mtart.

      REFRESH dynfields.


   dynfields-fieldname = 'P_MATNR'.
   append dynfields.

    call function 'DYNP_VALUES_READ'
        exporting
             dyname               = sy-cprog
             dynumb               = sy-dynnr
             translate_to_upper   = 'X'
        tables
             dynpfields           = dynfields
        exceptions
             invalid_abapworkarea = 1
             invalid_dynprofield  = 2
             invalid_dynproname   = 3
             invalid_dynpronummer = 4
             invalid_request      = 5
             no_fielddescription  = 6
             invalid_parameter    = 7
             undefind_error       = 8
             double_conversion    = 9
             stepl_not_found      = 10
             others               = 11.

   read table dynfields with key fieldname = 'P_MATNR'.

   p_matnr = dynfields-fieldvalue.

   call function 'CONVERSION_EXIT_ALPHA_INPUT'
        exporting
             input  = p_matnr
        importing
             output = p_matnr.

   select mara~mtart mtbez into CORRESPONDING FIELDS OF TABLE itab
                  from MARA
                  INNER JOIN T134T ON mara~mtart = t134t~mtart
                       where matnr = p_matnr and
                             t134t~spras = 'EN'.

   call function 'F4IF_INT_TABLE_VALUE_REQUEST'
        exporting
             retfield    = 'MTART'
              dynprofield = 'P_MTART'
             dynpprog    = sy-repid
             dynpnr      = sy-dynnr
             value_org   = 'S'
        tables
             value_tab   = itab
             return_tab  = itab_return.

READ TABLE ITAB_RETURN INTO WA_RETURN index 1.

IF sy-subrc = 0.
   P_MTART = WA_RETURN-fieldval.
*  P_WERKS = WA_RETURN-fieldval.
ENDIF.


select  t001w~werks name1 mara~mtart mtbez into CORRESPONDING FIELDS OF TABLE itab1
                  from MARA
                  INNER JOIN T134T ON mara~mtart = t134t~mtart
                  INNER JOIN T134M ON mara~mtart = t134m~mtart
                  INNER JOIN T001w ON t134m~bwkey = t001w~bwkey
                       where matnr = p_matnr and
                             t134t~spras = 'EN'.

   call function 'F4IF_INT_TABLE_VALUE_REQUEST'
        exporting
             retfield    = 'WERKS'
              dynprofield = 'P_WERKS'
             dynpprog    = sy-repid
             dynpnr      = sy-dynnr
             value_org   = 'S'
        tables
             value_tab   = itab1
             return_tab  = itab_return.

READ TABLE ITAB_RETURN INTO WA_RETURN index 1.

IF sy-subrc = 0.
   P_WERKS = WA_RETURN-fieldval.
ENDIF.

DATA: l_i_dynpfields  TYPE STANDARD TABLE OF dynpread INITIAL SIZE 0,
       l_wa_dynpfields TYPE dynpread.

   l_wa_dynpfields-fieldname = 'P_WERKS'.
   l_wa_dynpfields-fieldvalue = P_WERKS.
   APPEND l_wa_dynpfields TO l_i_dynpfields.


CALL FUNCTION 'DYNP_VALUES_UPDATE'
   EXPORTING
     dyname               = sy-repid
     dynumb               = sy-dynnr
   TABLES
     dynpfields           = l_i_dynpfields
   EXCEPTIONS
     invalid_abapworkarea = 1
     invalid_dynprofield  = 2
     invalid_dynproname   = 3
     invalid_dynpronummer = 4
     invalid_request      = 5
     no_fielddescription  = 6
     undefind_error       = 7
     OTHERS               = 8.
IF sy-subrc <> 0.
   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.


Viewing all articles
Browse latest Browse all 8122

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>