03-26-2009 5:54 AM
Hi,
I want to create an f4 help with out using match code objects.How can i do it ? . Is there any function code for it ?.
03-26-2009 5:59 AM
Hi,
Can you search with F4IF_INT*
I think there are two function module like F4IF_INT_FIELD_VALUE_REQUEST is for directly assing values to a field.
Another one F4IF_INT_TABLE_VALUE_REQUEST to get f4 help values from a data base table.
03-26-2009 5:56 AM
Hi,
Please search on SCN before posting...
Refer FM F4IF_INT_TABLE_VALUE_REQUEST
Refer this demo code to get a S.help for BELNR based on user input for BUKRS:-
PARAMETERS : p_belnr TYPE belnr,
p_bukrs TYPE bukrs.
DATA : BEGIN OF itab OCCURS 0,
belnr TYPE belnr,
END OF itab.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_belnr.
PERFORM f4_belnr_help USING p_belnr.
*&---------------------------------------------------------------------*
*& Form f4_belnr_help
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_BELNR text
*----------------------------------------------------------------------*
FORM f4_belnr_help USING p_belnr.
DATA : itab TYPE STANDARD TABLE OF it WITH HEADER LINE,
tb_dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE,
v_bukrs TYPE bukrs.
CLEAR: tb_dynpfields.
REFRESH: tb_dynpfields.
MOVE 'P_BUKRS' TO tb_dynpfields-fieldname.
APPEND tb_dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = 'Z_F4' "program name
dynumb = '1000' "screen number
TABLES
dynpfields = tb_dynpfields
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.
IF sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE tb_dynpfields INDEX 1.
IF sy-subrc EQ 0.
v_bukrs = tb_dynpfields-fieldvalue.
ENDIF.
SELECT belnr from <db_table> INTO TABLE itab WHERE bukrs = v_bukrs.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'BELNR' "internal table field
dynpprog = 'Z_F4' "program name
dynpnr = '1000' "screen number
dynprofield = 'P_BELNR' "screen field name
value_org = 'S'
TABLES
value_tab = itab "internal table
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
IF sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " f4_belnr_help
Hope this helps you.
Regards,
Tarun
Edited by: Tarun Gambhir on Mar 26, 2009 11:29 AM
03-26-2009 5:58 AM
hi,
Below pseudo code is F4 help.
DATA : fld(18).
SELECT-OPTIONS s_matnr FOR fld.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_matnr-low.
PERFORM f_f4help.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_matnr-high.
PERFORM f_f4help.
*&---------------------------------------------------------------------*
*& Form f_f4help
*&---------------------------------------------------------------------*
* text
FORM f_f4help .
DATA : BEGIN OF it_itab OCCURS 1,
matnr TYPE mara-matnr,
meins TYPE mara-meins,
END OF it_itab.
SELECT matnr
meins FROM mara INTO TABLE it_itab UP TO 10 ROWS.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'MATNR'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_MATNR'
value_org = 'S'
TABLES
value_tab = it_itab[]
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Thanks & Regards
01-26-2021 5:34 PM
I need to get first value(matnr) but second value(meins) only fetching in selection screen parameter..!!
kindly help me to get first value from f4 help window.,
Thank you..
01-26-2021 5:35 PM
Hi there,
You have a question and need help by the community? Instead of posting into an old question thread, it is more helpful for you, if you create your own question. Here is how to get started:
That's it. Thank you!
Best regards
Jennifer
Your SAP Community moderator
03-26-2009 5:58 AM
Hi,
Check this FM ..
SELECT-OPTIONS : s_year FOR tfacd-vjahr NO INTERVALS OBLIGATORY.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_year-low.
PERFORM f4_year CHANGING s_year-low.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_year-high.
PERFORM f4_year CHANGING s_year-high.
FORM f4_year CHANGING p_year TYPE any.
DATA:
lt_select_values LIKE STANDARD TABLE OF ddshretval,
l_select_values LIKE ddshretval.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'VJAHR'
dynpprog = sy-repid
dynpnr = sy-dynnr
window_title = 'Year' "#EC NOTEXT
value_org = 'S'
TABLES
value_tab = i_year_tab
return_tab = lt_select_values
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
CLEAR l_select_values.
READ TABLE lt_select_values INTO l_select_values INDEX 1.
IF sy-subrc EQ 0.
p_year = l_select_values-fieldval.
ENDIF.
ENDIF.
ENDFORM. " F4_YEAR
03-26-2009 5:59 AM
Hi,
Can you search with F4IF_INT*
I think there are two function module like F4IF_INT_FIELD_VALUE_REQUEST is for directly assing values to a field.
Another one F4IF_INT_TABLE_VALUE_REQUEST to get f4 help values from a data base table.
03-26-2009 6:01 AM
03-26-2009 8:37 AM