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
884

Hello all,

I have a report program. What I want is that when the user presses F4 for a particular selection screen parameter, a list of values should be displayed. This list is taken from a table skb1.

One concern is that all entries should not be displayed. Only those entries which specify a certain criterion ( eg. a field should be 'X' in the db table ) should be displayed.

Ravi

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
856

Hi ravi,

1. sample code (just copy paste)

2.

REPORT ABC.

*----


DATA : BEGIN OF ITAB OCCURS 0,

UNAME LIKE USR01-BNAME,

END OF ITAB.

data : RETURN_TAB LIKE DDSHRETVAL occurs 0 .

data : RETURN_wa LIKE DDSHRETVAL .

*----


PARAMETERS : A(12) TYPE C.

*----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR A.

ITAB-UNAME = 'U01'. APPEND ITAB.

ITAB-UNAME = 'U02'. APPEND ITAB.

ITAB-UNAME = 'U03'. APPEND ITAB.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

retfield = 'ITAB-UNAME'

  • PVALKEY = ' '

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'A'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

tables

value_tab = ITAB

  • FIELD_TAB = FTAB

RETURN_TAB = return_tab

  • DYNPFLD_MAPPING =

  • EXCEPTIONS

  • PARAMETER_ERROR = 1

  • NO_VALUES_FOUND = 2

  • OTHERS = 3

.

break-point.

regards,

amit m.

7 REPLIES 7
Read only

Former Member
0 Likes
857

Hi ravi,

1. sample code (just copy paste)

2.

REPORT ABC.

*----


DATA : BEGIN OF ITAB OCCURS 0,

UNAME LIKE USR01-BNAME,

END OF ITAB.

data : RETURN_TAB LIKE DDSHRETVAL occurs 0 .

data : RETURN_wa LIKE DDSHRETVAL .

*----


PARAMETERS : A(12) TYPE C.

*----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR A.

ITAB-UNAME = 'U01'. APPEND ITAB.

ITAB-UNAME = 'U02'. APPEND ITAB.

ITAB-UNAME = 'U03'. APPEND ITAB.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

retfield = 'ITAB-UNAME'

  • PVALKEY = ' '

DYNPPROG = SY-REPID

DYNPNR = SY-DYNNR

DYNPROFIELD = 'A'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

tables

value_tab = ITAB

  • FIELD_TAB = FTAB

RETURN_TAB = return_tab

  • DYNPFLD_MAPPING =

  • EXCEPTIONS

  • PARAMETER_ERROR = 1

  • NO_VALUES_FOUND = 2

  • OTHERS = 3

.

break-point.

regards,

amit m.

Read only

Former Member
0 Likes
856

hi,

in order to display only the selected entries you have to create a matchcode object and match code id in SE11 and asssign to parameter or select option.

Regards

srinivas

Read only

Former Member
0 Likes
856

hi,

check the FM <b>F4IF_INT_TABLE_VALUE_REQUEST</b>

hope this helps,

do reward if it helps,

Priya.

Read only

Former Member
0 Likes
856

create a match code object and assign it in the program for that selection field.

Read only

anversha_s
Active Contributor
0 Likes
856

HI,

Check this standard program which will help u to solev ur issue.

REPORT demo_dynpro_f4_help_module .
 
TYPES: BEGIN OF values,
         carrid TYPE spfli-carrid,
         connid TYPE spfli-connid,
       END OF values.
 
DATA: carrier(3) TYPE c,
      connection(4) TYPE c.
 
DATA: progname TYPE sy-repid,
      dynnum   TYPE sy-dynnr,
      dynpro_values TYPE TABLE OF dynpread,
      field_value LIKE LINE OF dynpro_values,
      values_tab TYPE TABLE OF values.
 
CALL SCREEN 100.
 
MODULE init OUTPUT.
  progname = sy-repid.
  dynnum   = sy-dynnr.
  CLEAR: field_value, dynpro_values.
  field_value-fieldname = 'CARRIER'.
  APPEND field_value TO dynpro_values.
ENDMODULE.
 
MODULE cancel INPUT.
  LEAVE PROGRAM.
ENDMODULE.
 
MODULE value_carrier INPUT.
 
  CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
       EXPORTING
            tabname     = 'DEMOF4HELP'
            fieldname   = 'CARRIER1'
            dynpprog    = progname
            dynpnr      = dynnum
            dynprofield = 'CARRIER'.
 
ENDMODULE.
 
MODULE value_connection INPUT.
 
  CALL FUNCTION 'DYNP_VALUES_READ'
       EXPORTING
            dyname             = sy-repid
            dynumb             = '1000'
            translate_to_upper = 'X'
       TABLES
            dynpfields         = dynpro_values.
 
  READ TABLE dynpro_values INDEX 1 INTO field_value.
 
  SELECT  chect
    FROM  <table>
    INTO  CORRESPONDING FIELDS OF TABLE values_tab
    WHERE carrid = field_value-fieldvalue.
 
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
       EXPORTING
            retfield    = 'CONNID'
            dynpprog    = progname
            dynpnr      = dynnum
            dynprofield = 'CONNECTION'
            value_org   = 'S'
       TABLES
            value_tab   = values_tab.
 
ENDMODULE.

Regards

Anver

pls mark poinst if hlepd

Read only

Former Member
0 Likes
856

hi

good

go through this link

http://abap4.tripod.com/How_to_Create_Popup_Help.html

thanks

mrutyun^

Read only

Former Member
0 Likes
856

Hi,

try using the below code...

parameters : p_saknr like skb1-saknr obligatory.

----


  • At Selection-Screen On Value Request

----


at selection-screen on value-request for p_saknr.

*-- perform to give possible values for tables

perform f4_table.

*-- fecth valid records

select fld1

fld2

from skb1

into table t_tables

where fld = 'X'.

if sy-subrc = 0.

sort t_tables by saknr.

delete adjacent duplicates from t_tables comparing saknr..

else.

message e999(zi) with 'No entries found'(007).

exit.

endif.

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

call function 'F4IF_INT_TABLE_VALUE_REQUEST'

exporting

  • DDIC_STRUCTURE = ' '

retfield = 'TABNAME'

  • PVALKEY = ' '

dynpprog = 'TEST'

dynpnr = '1000'

dynprofield = 'P_SAKNR'

  • STEPL = 0

window_title = 'Tables'(008)

  • VALUE = ' '

value_org = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

tables

value_tab = t_tables

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

else.

message s999(zi) with 'No entries found'(007).

endif.

Madhavi