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: 

f4 help with example

Former Member
0 Kudos

Hi Abapers,

I have two select options in a selection screen

Customer no (kunnr) and Material (matnr)

I want material f4 help on the basis of Customer No (Kunnr) selected at selection screen.

please provide the code for the same.

Any suggestion welcome.

Thanks,

5 REPLIES 5

Former Member
0 Kudos

tables: t001.

data: begin of it001 occurs 0,

bukrs type t001-bukrs,

butxt type t001-butxt,

ort01 type t001-ort01,

land1 type t001-land1,

end of it001.

select-options s_bukrs for t001-bukrs.

initialization.

select bukrs butxt ort01 land1 into table it001 from t001.

sort it001 ascending by bukrs.

delete adjacent duplicates from it001 comparing bukrs.

at selection-screen on value-request for s_bukrs-low.

call function 'F4IF_INT_TABLE_VALUE_REQUEST'

exporting

retfield = 'BUKRS'

dynprofield = 'S_BUKRS'

dynpprog = sy-cprog

dynpnr = sy-dynnr

value_org = 'S'

tables

value_tab = it001.

start-of-selection.

REGARDS'

karthik

Former Member
0 Kudos

hI

SEE THIS CODE IN WHICH I HAD FILTERD THE DATA BASED ON THE SERACH HELP

BEFORE I WROTE THIS CODE FOR MY SELECTION SCREEN FILED THERE ARE LOT OF ENTRIES OTHER THAN MY CONDITION

THEN AFTER WRITING THIS CODE I HAD FILTERD MY CODE DEPENDING ON THE MY CONDITION

TYPES : BEGIN OF ST_OBJID_SH,

OTYPE TYPE HRP1000-OTYPE,

OBJID TYPE HRP1000-OBJID,

END OF ST_OBJID_SH.

DATA : IT_OBJID_SH TYPE STANDARD TABLE OF ST_OBJID_SH.

DATA : WA_OBJID_SH TYPE ST_OBJID_SH.

***********SELECTION SCREEN DESIGN***********************

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

*SELECT-OPTIONS : S_OTYPE FOR HRP1001-OTYPE NO INTERVALS .

SELECT-OPTIONS : S_OBJID FOR HRP1001-OBJID NO INTERVALS .

SELECT-OPTIONS : DATE FOR SY-DATUM NO-EXTENSION OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

**********END OF SELECTION SCREEN DESIGN*****************

*********VALIDATION FOR SCREEN FIELDS********************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_OBJID-LOW.

  • IF S_OBJID IS NOT INITIAL.

SELECT OTYPE OBJID FROM HRP1000

INTO TABLE IT_OBJID_SH

WHERE OTYPE = 'D'.

IF SY-SUBRC EQ 0.

  • SEARCH HELP FOR QUALIFICATION.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'OBJID'

  • PVALKEY = ' '

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'S_OBJID'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

TABLES

VALUE_TAB = IT_OBJID_SH

  • FIELD_TAB =

  • RETURN_TAB = RETURN_TAB

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

ENDIF.

.

Reward if uswefull

Former Member
0 Kudos

Instead of s_prctr you use your select-option name and other details like ur program name, table name..etc

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

PERFORM f4_help_carrid.

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

PERFORM f4_help_carrid

form f4_help_for_carrid .

  • NOTE:

  • Tabname/fieldname is the name of the table and field

  • for which F4 should be shown.

*

  • Dynprog/Dynpnr/Dynprofield are the names of the Progran/Dynpro/Field

  • in which the f4 value should be returned.

*

  • Value: The value of the Dynpro field when calling the F4 help.

  • You can limit the values shown, by inseting a value in this parameter

  • e.g 'A*' to show only values beginning with A

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'

EXPORTING

tabname = 'SFLIGHT'

fieldname = 'CARRID'

  • SEARCHHELP = ' '

  • SHLPPARAM = ' '

dynpprog = 'ZDANY_F4_OWN_CALL'

dynpnr = '0100'

dynprofield = 'SFLIGHT-CARRID'

  • STEPL = 0

value = 'A*'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • SUPPRESS_RECORDLIST = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • TABLES

  • RETURN_TAB =

  • EXCEPTIONS

  • FIELD_NOT_FOUND = 1

  • NO_HELP_FOR_FIELD = 2

  • INCONSISTENT_HELP = 3

  • NO_VALUES_FOUND = 4

  • OTHERS = 5

.

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_help_for_carrid

Former Member
0 Kudos

Hi

data:

begin of t_values occurs 2,

value like kna1-begru,

end of t_values,

t_return like ddshretval occurs 0 with header line.

t_values = 'PAR*'.

append t_values.

t_values = 'UGG'.

append t_values.

call function 'F4IF_INT_TABLE_VALUE_REQUEST'

exporting

retfield = 'BEGRU'

value_org = 'S'

tables

value_tab = t_values

return_tab = t_return

exceptions

parameter_error = 1

no_values_found = 2

others = 3.

if sy-subrc = 0.

read table t_return index 1.

o_begru-low = t_return-fieldval.

if o_begru-low = 'PAR*'.

o_begru-option = 'CP'.

else.

o_begru-option = 'EQ'.

endif.

o_begru-sign = 'I'.

append o_begru to s_begru.

else.

o_begru = i_begru.

endif.

Reward points if useful...

Regards

Sreenivas

Former Member
0 Kudos

hi,

try like this...

here i am finding Kunnr for entered company code (Bukrs)

TYPES : BEGIN OF ty_kna1,

kunnr TYPE kna1-kunnr, "CUstomer Code

name1 TYPE kna1-name1, "Customer Code

END OF ty_kna1.

DATA : dyfields LIKE dynpread OCCURS 1 WITH HEADER LINE ,

i_kna1 TYPE TABLE OF ty_kna1 WITH HEADER LINE.

DATA : wa_value_tab TYPE ty_kna1.

DATA : value_tab LIKE wa_value_tab OCCURS 0 WITH HEADER LINE.

DATA : field_tab LIKE dfies OCCURS 0 WITH HEADER LINE.

DATA : return_tab LIKE ddshretval OCCURS 0 WITH HEADER LINE.

PARAMETERS:bukrs LIKE rbkp-bukrs OBLIGATORY.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS : rad_but1 RADIOBUTTON GROUP one DEFAULT 'X' USER-COMMAND ucom.

SELECTION-SCREEN COMMENT 3(26) text-003.

<b>SELECT-OPTIONS : kunnr FOR kna1-kunnr.</b>

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS : rad_but2 RADIOBUTTON GROUP one.

SELECTION-SCREEN COMMENT 3(26) text-004.

SELECT-OPTIONS : lifnr FOR lfa1-lifnr.

SELECTION-SCREEN END OF LINE.

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

CHECK NOT bukrs IS INITIAL .

SELECT kna1kunnr kna1name1

INTO TABLE i_kna1

FROM kna1 INNER JOIN vbrk

ON kna1kunnr = vbrkkunag

WHERE vbrk~bukrs = bukrs. "dyfields-fieldvalue.

SORT i_kna1 BY kunnr.

DELETE ADJACENT DUPLICATES FROM i_kna1.

CLEAR : value_tab,field_tab,return_tab.

REFRESH : value_tab,field_tab,return_tab.

field_tab-fieldname = 'KUNNR'.

field_tab-tabname = 'KNA1'.

APPEND field_tab.

field_tab-fieldname = 'NAME1'.

field_tab-tabname = 'KNA1'.

APPEND field_tab.

field_tab-fieldname = 'KUNNR'.

LOOP AT i_kna1 .

value_tab-kunnr = i_kna1-kunnr.

APPEND value_tab.

CLEAR value_tab.

value_tab-name1 = i_kna1-name1.

APPEND value_tab.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = field_tab-fieldname

TABLES

value_tab = value_tab

field_tab = field_tab

return_tab = return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc = 0.

kunnr-low = return_tab-fieldval.

ENDIF.