Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Reg. F4 help without pressing Enter.

Former Member
0 Kudos

Hi ,

In the below program there r 2 input fields. Material No. and Plant. when ever I enter a particular Material No. In the selection screen and If i press F4 on palnt field I am getting relevent plants for that material. But This is happening when ever I press enter button after giving input in material No field. But my requirement is i should get relevent plant when I press F4 on plant field even though I dont press enter button .

REPORT ZBC_BC1 .

TABLES: MARA, MARC.

PARAMETERS: MATNR TYPE MARA-MATNR.

PARAMETERS: WERKS TYPE MARC-WERKS.

TYPES : BEGIN OF TY_MARC ,

WERKS TYPE MARC-WERKS ,

END OF TY_MARC.

DATA : IT_MARC TYPE STANDARD TABLE OF TY_MARC.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR WERKS.

SELECT WERKS FROM MARC INTO TABLE IT_MARC WHERE MATNR EQ MATNR.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'WERKS'

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'P_WERKS'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = IT_MARC.

START-OF-SELECTION.

WRITE: / ' this is for testing'.

1 REPLY 1

former_member212653
Active Contributor
0 Kudos

Check out this code:


REPORT ztest_sourav14.
DATA: wa_pa0001 TYPE pa0001.

SELECT-OPTIONS: s_name FOR wa_pa0001-uname NO INTERVALS.
PARAMETERS:p_ctry TYPE char2.

INITIALIZATION.
  REFRESH s_name.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_name-low.

  PERFORM sub_populate_f4_help USING 'S_NAME-LOW'.



START-OF-SELECTION.


END-OF-SELECTION.


*&---------------------------------------------------------------------*
*&      Form  sub_populate_f4_help
*&---------------------------------------------------------------------*
*       Populate data
*----------------------------------------------------------------------*
*      -->P_RETFIELD Returned field
*----------------------------------------------------------------------*
FORM sub_populate_f4_help USING p_retfield TYPE fieldname.
  TYPES:
  BEGIN OF l_x_names,
    uname TYPE aenam,  "Name of Person
  END OF l_x_names.

  DATA:
  l_i_names TYPE STANDARD TABLE OF l_x_names INITIAL SIZE 0,
  l_wa_names TYPE l_x_names,
  l_i_field_tab TYPE STANDARD TABLE OF dfies INITIAL SIZE 0,
  l_i_return_tab TYPE STANDARD TABLE OF ddshretval INITIAL SIZE 0,
  l_wa_return_tab TYPE ddshretval,
  l_i_dynpfld_mapping TYPE STANDARD TABLE OF dselc INITIAL SIZE 0,
  l_wa_s_name LIKE LINE OF s_name.

  l_wa_names-uname = 'TEST1'.
  APPEND l_wa_names TO l_i_names.
  l_wa_names-uname = 'TEST2'.
  APPEND l_wa_names TO l_i_names.
  l_wa_names-uname = 'TEST3'.
  APPEND l_wa_names TO l_i_names.
  l_wa_names-uname = 'TEST4'.
  APPEND l_wa_names TO l_i_names.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
*   DDIC_STRUCTURE         = ' '
    retfield               = 'UNAME'
*   PVALKEY                = ' '
    dynpprog               = sy-repid
    dynpnr                 = sy-dynnr
    dynprofield            = 'S_NAME-LOW'
*   STEPL                  = 0
*   WINDOW_TITLE           =
*   VALUE                  = ' '
    value_org              = 'S'
    multiple_choice        = 'X'
*   DISPLAY                = ' '
*   CALLBACK_PROGRAM       = ' '
*   CALLBACK_FORM          = ' '
*   MARK_TAB               =
* IMPORTING
*   USER_RESET             =
    TABLES
     value_tab              = l_i_names
     field_tab              = l_i_field_tab
     return_tab             = l_i_return_tab
     dynpfld_mapping        = l_i_dynpfld_mapping
    EXCEPTIONS
     parameter_error        = 1
     no_values_found        = 2
     OTHERS                 = 3        .
  IF sy-subrc = 0.
    REFRESH s_name.
    s_name-sign   = 'I'.
    s_name-option = 'EQ'.
    LOOP AT l_i_return_tab INTO l_wa_return_tab.
      s_name-low = l_wa_return_tab-fieldval.
      APPEND s_name.
    ENDLOOP.
    READ TABLE l_i_return_tab INTO l_wa_return_tab INDEX 1.
    s_name-low = l_wa_return_tab-fieldval.
  ELSE.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
  DATA: l_i_dynpfields  TYPE STANDARD TABLE OF dynpread INITIAL SIZE 0,
        l_wa_dynpfields TYPE dynpread.
  IF s_name-low = 'TEST1'.
    l_wa_dynpfields-fieldname = 'P_CTRY'.
    l_wa_dynpfields-fieldvalue = 'IN'.
    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.
  ENDIF.


ENDFORM.                    "