Application Development and Automation 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: 
Read only

F4 help

Former Member
0 Likes
361

i want to display the values(f4) for a parameter on the selection screen based on selection screen criteria when the user requests for F4 for that parameter.

please let me know how to do that.

3 REPLIES 3
Read only

Former Member
0 Likes
339

hi,

use this code it will work

parameters :p_pernr like pa0001-pernr

define like this

use this event

AT Selection-screen on p_pernr.

under this event call this function module and pass required data .

F4IF_FIELD_VALUE_REQUEST

  • F4 help also returning the value to be displayed in internal table

F4IF_INT_TABLE_VALUE_REQUEST

or else .

FORM HELP_CHECK.

*-- Set up fields to retrieve data

ltab_fields-tabname = 'ZFI_PMNTADV'.

ltab_fields-fieldname = 'CHECT'.

ltab_fields-selectflag = 'X'.

APPEND ltab_fields.

ltab_fields-tabname = 'ZFI_PMNTADV'.

ltab_fields-fieldname = 'PMNT_ADV'.

ltab_fields-selectflag = 'X'.

APPEND ltab_fields.

SORT ltab_fields.

DELETE ADJACENT DUPLICATES FROM ltab_fields.

*-- Fill values

SELECT chect

INTO TABLE ltab_values

FROM zfi_pmntadv

WHERE pmnt_adv NE space.

SORT ltab_values.

DELETE ADJACENT DUPLICATES FROM ltab_values.

CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'

EXPORTING

fieldname = 'chect'

tabname = 'zfi_pmntadv'

title_in_values_list = 'Select a value'

IMPORTING

select_value = so_chect

TABLES

fields = ltab_fields

valuetab = ltab_values

EXCEPTIONS

field_not_in_ddic = 01

more_then_one_selectfield = 02

no_selectfield = 03.

ENDFORM. "fiscal_year

please reward points, if it is useful,

regards,

satish.

Read only

Former Member
0 Likes
339

Hi

See the following ex:

TYPES: BEGIN OF TY_MBLNR,

MBLNR LIKE MKPF-MBLNR,

END OF TY_MBLNR.

DATA: IT_MBLNR TYPE STANDARD TABLE OF TY_MBLNR WITH HEADER LINE.

data: it_ret like ddshretval occurs 0 with header line.

At selection-screen on value-request for s_mat-low.

Select MBLNR from mkpf into table it_mblnr.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'MBLNR'

  • PVALKEY = ' '

  • DYNPPROG = ' '

  • DYNPNR = ' '

  • DYNPROFIELD = ' '

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

TABLES

VALUE_TAB = IT_MBLNR

  • FIELD_TAB =

RETURN_TAB = IT_RET

  • DYNPFLD_MAPPING =

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

IF SY-SUBRC = 0.

read table it_ret index 1.

move it_ret-fieldval to S_mat-low.

ENDIF.

Go through the test program.

REPORT Ztest_HELP .

TABLES : MARA.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS : P_MATNR(10) TYPE C.

SELECTION-SCREEN END OF BLOCK B1.

DATA : BEGIN OF ITAB OCCURS 0,

MATNR TYPE MATNR,

END OF ITAB.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_MATNR.

SELECT MATNR

FROM MARA

INTO TABLE ITAB

UP TO 10 ROWS.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'MATERIAL NUMBER'

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'P_MATNR'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = ITAB

EXCEPTIONS

PARAMETER_ERROR = 1

NO_VALUES_FOUND = 2

OTHERS = 3.

with regards,

Hema Sundara.

pls reward if u find it helpful.

Read only

Former Member
0 Likes
339

hi sripriya,

Refer this code.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vbeln-high.

dynprofield1 = 'S_VBELN-HIGH'.

PERFORM get_f4 USING dynprofield1.

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

dynprofield1 = 'S_VBELN-LOW'.

PERFORM get_f4 USING dynprofield1

DATA :retfield1 LIKE dfies-fieldname,

dynpprog1 LIKE sy-repid,

dynpnr LIKE sy-dynnr,

field_tab1 LIKE dfies OCCURS 0,

return_tab1 LIKE ddshretval OCCURS 0.

dynpprog1 = sy-repid.

DATA : BEGIN OF itab OCCURS 0,

vbeln LIKE vbak-vbeln,

END OF itab.

SELECT vbeln FROM vbak INTO itab .

APPEND itab.

ENDSELECT.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'VBELN'

dynpprog = dynpprog1

dynpnr = '1000'

dynprofield = dynprofield1

value_org = 'S'

TABLES

value_tab = itab

return_tab = return_tab1

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.

Reward if it usful,

Thanks,

Srikanth.A