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
1,294

What is the syntaxt for f4 help.

select-options : p_belnr for bseg-belnr,

Suppose this is my select-options, And I want F4 help for this. How I will do that.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,263

Hi,

Check the following code:

SELECT-OPTIONS: SDATE FOR SY-DATUM OBLIGATORY,

S_WERK FOR T001W-WERKS.

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

REFRESH ITEMP.

CLEAR ITEMP.

SELECT WERKS

NAME1

FROM T001W

INTO TABLE ITEMP

WHERE IWERK = 'M011'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'WERKS'

  • PVALKEY = ' '

  • DYNPPROG = ' '

  • DYNPNR = ' '

  • DYNPROFIELD = ' '

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

TABLES

VALUE_TAB = ITEMP

  • FIELD_TAB =

RETURN_TAB = T_RETURN

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

S_WERK-LOW = T_RETURN-FIELDVAL.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_WERK-HIGH.

REFRESH ITEMP.

CLEAR ITEMP.

SELECT WERKS

NAME1

FROM T001W

INTO TABLE ITEMP

WHERE IWERK = 'M011'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'WERKS'

  • PVALKEY = ' '

  • DYNPPROG = ' '

  • DYNPNR = ' '

  • DYNPROFIELD = ' '

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

TABLES

VALUE_TAB = ITEMP

  • FIELD_TAB =

RETURN_TAB = T_RETURN

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

S_WERK-HIGH = T_RETURN-FIELDVAL.

Hope this helps.

Reward if helpful.

Regards,

Sipra

13 REPLIES 13
Read only

Former Member
0 Likes
1,263

Hi,

Here is an example program where you are generically defining the select-option and building its F4 help at runtime.

report zrich_0001 .

data: begin of ihelp occurs 0,

field type char10,

ftext type char50,

end of ihelp.

data: a_field(20) type c.

select-options s_field for a_field.

initialization.

ihelp-field = 'A'.

ihelp-ftext = 'Description A'.

append ihelp.

ihelp-field = 'B'.

ihelp-ftext = 'Description B'.

append ihelp.

ihelp-field = 'C'.

ihelp-ftext = 'Description C'.

append ihelp.

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

call function 'F4IF_INT_TABLE_VALUE_REQUEST'

exporting

retfield = 'FIELD'

dynprofield = 'S_FIELD'

dynpprog = sy-cprog

dynpnr = sy-dynnr

value_org = 'S'

tables

value_tab = ihelp.

start-of-selection.

Cheers

VJ

Read only

Former Member
0 Likes
1,263

Hi Abhay,

Refer this code :

select-options : p_belnr for bseg-belnr,

As bseg is table so that u will get f4 on this field.

Other way is :

at Selection-screen on help-request........

read help(F1) on at selection screen command.

Reward points if helpful.

Regards,

Hemant

Read only

Former Member
0 Likes
1,263

Hi,

Check the following code:

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

REFRESH ITEMP.

CLEAR ITEMP.

SELECT WERKS

NAME1

FROM T001W

INTO TABLE ITEMP

WHERE IWERK = 'M011'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'WERKS'

  • PVALKEY = ' '

  • DYNPPROG = ' '

  • DYNPNR = ' '

  • DYNPROFIELD = ' '

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

TABLES

VALUE_TAB = ITEMP

  • FIELD_TAB =

RETURN_TAB = T_RETURN

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

S_WERK-LOW = T_RETURN-FIELDVAL.

Hope this helps.

Reward if helpful.

Regards,

Sipra

Read only

Former Member
0 Likes
1,263

create a serch help in SE11

select-options : p_belnr for bseg-belnr matchcode object <serch help name>.

this is static one if u want dynamic one use FM F4IF_INT_TABLE_VALUE_REQUEST.

Read only

Former Member
0 Likes
1,263

hi,

Check this....

TABLES: mara, makt.

DATA mat LIKE mara-matnr.

DATA: BEGIN OF itab OCCURS 0,

matnr LIKE mara-matnr,

END OF itab.

DATA : BEGIN OF btab OCCURS 0,

maktx LIKE makt-maktx,

END OF btab.

DATA : return LIKE ddshretval OCCURS 0 WITH HEADER LINE.

SELECT-OPTIONS: so_matnr FOR mara-matnr,

so_maktx FOR makt-maktx.

INITIALIZATION.

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

PERFORM matnr.

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

PERFORM matnr.

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

PERFORM maktx.

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

PERFORM maktx.

&----


*& Form matnr

&----


  • text

----


FORM matnr.

REFRESH itab.

SELECT matnr FROM mara INTO TABLE itab.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'MATNR '

dynprofield = 'P_MATNR '

dynpprog = sy-repid

dynpnr = sy-dynnr

value_org = 'S'

TABLES

value_tab = itab

return_tab = return.

mat = return-fieldval.

UNPACK mat TO mat.

so_matnr = return-fieldval.

REFRESH return.

CLEAR return.

ENDFORM. "matnr

&----


*& Form maktx

&----


  • text

----


FORM maktx.

REFRESH btab.

SELECT maktx FROM makt INTO TABLE btab WHERE matnr = mat AND spras =

sy-langu.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'MAKTX'

dynprofield = 'SO_MAKTX '

dynpprog = sy-repid

dynpnr = sy-dynnr

value_org = 'S'

TABLES

value_tab = btab

return_tab = return.

so_maktx = return-fieldval.

REFRESH return.

CLEAR return.

ENDFORM. "maktx

Read only

Former Member
0 Likes
1,263

hi abhay,

if belnr is having a search help then u`ll get help by pressing f4 in ur select options automatically else if u want to give a range of values for ur variable then user this function module...

call function 'F4IF_INT_TABLE_VALUE_REQUEST'

exporting

retfield = 'FIELD'

dynprofield = 'S_FIELD'

dynpprog = sy-cprog

dynpnr = sy-dynnr

value_org = 'S'

tables

value_tab = ihelp.

regards,

Read only

Former Member
0 Likes
1,263

go for th eprogram

demo_selection_screen_f4

<b>Dont forget to Award if useful</b>Sudheer

Read only

Former Member
0 Likes
1,263

Hi,

Therer are two ways:

1 f4 using internal table

2. f4 using db field reference

sample codes are as follows:

F4 help – using internal table example:


DATA: BEGIN OF LI_FABGRP OCCURS 0,
FABGRP LIKE ZAPO_FABGRP-FABGRP,
BEGDA LIKE ZAPO_FABGRP-BEGDA,
END OF LI_FABGRP.

DATA : T_RETURN TYPE STANDARD TABLE OF DDSHRETVAL WITH HEADER LINE,
L_RETFIELD TYPE DFIES-FIELDNAME.

parameters : S_FABGR like ZAPO_FABGRP-FABGRP.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_FABGR.

SELECT FABGRP BEGDA FROM ZAPO_FABGRP INTO table LI_FABGRP.

SORT LI_FABGRP BY FABGRP ASCENDING BEGDA DESCENDING.

* Henter de mulige fabriksgrupper med nyeste BEGDA *indenfor hver
DELETE ADJACENT DUPLICATES FROM LI_FABGRP COMPARING FABGRP.

L_RETFIELD = 'FABGRP'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = L_RETFIELD
DYNPPROG = SY-REPID
DYNPNR = '1000'
DYNPROFIELD = 'S_FABGR'
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
TABLES
VALUE_TAB = LI_FABGRP
RETURN_TAB = T_RETURN
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.

F4 help – using field example:


AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_FABGR.

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
  EXPORTING
    tabname                   = mara
    fieldname                 = matnr
*   SEARCHHELP                = ' '
*   SHLPPARAM                 = ' '
*   DYNPPROG                  = ' '
*   DYNPNR                    = ' '
*   DYNPROFIELD               = ' '
*   STEPL                     = 0
*   VALUE                     = ' '
*   MULTIPLE_CHOICE           = ' '
*   DISPLAY                   = ' '
*   SUPPRESS_RECORDLIST       = ' '
*   CALLBACK_PROGRAM          = ' '
*   CALLBACK_FORM             = ' '
*   SELECTION_SCREEN          = ' '
* IMPORTING
*   USER_RESET                =
* TABLES
*   RETURN_TAB                =
* EXCEPTIONS
*   FIELD_NOT_FOUND           = 1
*   NO_HELP_FOR_FIELD         = 2
*   INCONSISTENT_HELP         = 3
*   NO_VALUES_FOUND           = 4
*   OTHERS                    = 5
          .

Read only

0 Likes
1,263

Hi,

U have to <b>award points for useful answers</b> and u have to mention it as <b>Solved</b> if ur question is solved. Dont forget.

Regards,

Sudheer

Read only

0 Likes
1,263

hi jogdand

i need ur help rather one who cud help me

i am workin on dynamic f4

i have certain feild in f4 already display using hard code

now i have to add another filed to it rite next to it but from internal table

i did the same

but i am facing a problem those field are coming in next colum but not next to the earlier filed it is coming after all the entries of 1st filed is over

please help me with the same

thank in avance

anuj

Read only

Former Member
0 Likes
1,264

Hi,

Check the following code:

SELECT-OPTIONS: SDATE FOR SY-DATUM OBLIGATORY,

S_WERK FOR T001W-WERKS.

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

REFRESH ITEMP.

CLEAR ITEMP.

SELECT WERKS

NAME1

FROM T001W

INTO TABLE ITEMP

WHERE IWERK = 'M011'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'WERKS'

  • PVALKEY = ' '

  • DYNPPROG = ' '

  • DYNPNR = ' '

  • DYNPROFIELD = ' '

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

TABLES

VALUE_TAB = ITEMP

  • FIELD_TAB =

RETURN_TAB = T_RETURN

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

S_WERK-LOW = T_RETURN-FIELDVAL.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_WERK-HIGH.

REFRESH ITEMP.

CLEAR ITEMP.

SELECT WERKS

NAME1

FROM T001W

INTO TABLE ITEMP

WHERE IWERK = 'M011'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

RETFIELD = 'WERKS'

  • PVALKEY = ' '

  • DYNPPROG = ' '

  • DYNPNR = ' '

  • DYNPROFIELD = ' '

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

TABLES

VALUE_TAB = ITEMP

  • FIELD_TAB =

RETURN_TAB = T_RETURN

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

S_WERK-HIGH = T_RETURN-FIELDVAL.

Hope this helps.

Reward if helpful.

Regards,

Sipra

Read only

0 Likes
1,263

Select-options: s_rcode FOR g_grund . "Reason code

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

  • Validation for Reasoncode

PERFORM sub_get_F4_rcodehelp .

FORM sub_get_f4_rcodehelp .

  • STRUCTURES Declarations

TYPES: BEGIN OF ty_rcode ,

grund TYPE mb_grbew,

grtxt TYPE grtxt,

END OF ty_rcode.

*Internal Table declaration

DATA : li_rcode TYPE STANDARD TABLE OF ty_rcode WITH HEADER LINE.

SELECT grund grtxt

INTO TABLE li_rcode

FROM t157e

WHERE spras = sy-langu .

*Help functions for external use

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'fieldname'

dynpprog = 'programname

dynpnr = '1000'

dynprofield = 'S_PCODE'

value_org = 'S'

TABLES

value_tab = li_rcode

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. " sub_get_F4_rcodehelp

Read only

Former Member
0 Likes
1,263

Hi,

You can give F4 help by two ways:

1. Using internal table

2. Refering db table field.

Following are e.gs:

F4 help – using internal table example:

DATA: BEGIN OF LI_FABGRP OCCURS 0,
FABGRP LIKE ZAPO_FABGRP-FABGRP,
BEGDA LIKE ZAPO_FABGRP-BEGDA,
END OF LI_FABGRP.

DATA : T_RETURN TYPE STANDARD TABLE OF DDSHRETVAL WITH HEADER LINE,
L_RETFIELD TYPE DFIES-FIELDNAME.

parameters : S_FABGR like ZAPO_FABGRP-FABGRP.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_FABGR.

SELECT FABGRP BEGDA FROM ZAPO_FABGRP INTO table LI_FABGRP.

SORT LI_FABGRP BY FABGRP ASCENDING BEGDA DESCENDING.

* Henter de mulige fabriksgrupper med nyeste BEGDA *indenfor hver
DELETE ADJACENT DUPLICATES FROM LI_FABGRP COMPARING FABGRP.

L_RETFIELD = 'FABGRP'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = L_RETFIELD
DYNPPROG = SY-REPID
DYNPNR = '1000'
DYNPROFIELD = 'S_FABGR'
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
TABLES
VALUE_TAB = LI_FABGRP
RETURN_TAB = T_RETURN
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.

F4 help – using field example:


AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_FABGR.

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
  EXPORTING
    tabname                   = mara
    fieldname                 = matnr
*   SEARCHHELP                = ' '
*   SHLPPARAM                 = ' '
*   DYNPPROG                  = ' '
*   DYNPNR                    = ' '
*   DYNPROFIELD               = ' '
*   STEPL                     = 0
*   VALUE                     = ' '
*   MULTIPLE_CHOICE           = ' '
*   DISPLAY                   = ' '
*   SUPPRESS_RECORDLIST       = ' '
*   CALLBACK_PROGRAM          = ' '
*   CALLBACK_FORM             = ' '
*   SELECTION_SCREEN          = ' '
* IMPORTING
*   USER_RESET                =
* TABLES
*   RETURN_TAB                =
* EXCEPTIONS
*   FIELD_NOT_FOUND           = 1
*   NO_HELP_FOR_FIELD         = 2
*   INCONSISTENT_HELP         = 3
*   NO_VALUES_FOUND           = 4
*   OTHERS                    = 5
          .