06-25-2008 1:38 PM
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'.
06-25-2008 1:42 PM
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. "