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: 

search help attachement

Former Member
0 Kudos

Hi,

How i can attach a search help to a parameter or select option field in selection screen?.

Regards.

1 ACCEPTED SOLUTION

suresh_datti
Active Contributor
0 Kudos

try this..


parameters: P_persno like p0001-pernr matchcode object premu.

Regards,

Suresh Datti

6 REPLIES 6

RichHeilman
Developer Advocate
Developer Advocate
0 Kudos

You can use the key work MATCHCODE OBJECT.

parameters: p_outd(30) type c matchcode object PRIN.

In the above code, we are forcing the search help for output device.

You can also do the same with select-options.

data: outd(30) type c.

select-options: s_outd for outd matchcode object PRIN.

Regards,

Rich Heilman

andreas_mann3
Active Contributor
0 Kudos

Hi,

try to use the correct field from the data dictionary

(e.g.: parameters company type t001-bukrs)

or use

AT SELECTION-SCREEN ON HELP-REQUEST FOR psel_low_high.

-> look F1

Andreas

suresh_datti
Active Contributor
0 Kudos

try this..


parameters: P_persno like p0001-pernr matchcode object premu.

Regards,

Suresh Datti

Former Member
0 Kudos

Hi Brinda,

There are two ways of attaching a search help to a particular parameter.

1) Using MATCHCODE OBJECT addition to the parameter statement

eg: PARAMETERS p_carrid TYPE s_carr_id MATCHCODE OBJECT ZSEARCH_HELP.

2) Using function module F4IF_FIELD_VALUE_REQUEST.

Just check the code given below.

REPORT zkun_test4 .

DATA: ret_tab LIKE TABLE OF ddshretval WITH HEADER LINE.

DATA: value_sel(20).

DATA: BEGIN OF values1,

carrid TYPE sflight-carrid,

connid TYPE sflight-connid,

END OF values1.

DATA: dynpro_values TYPE dynpread OCCURS 1 WITH HEADER LINE,

field_value LIKE LINE OF dynpro_values.

DATA: values LIKE TABLE OF values1 WITH HEADER LINE.

TABLES sflight.

PARAMETERS: p_carrid LIKE sflight-carrid, "Currency

p_connid TYPE i.

DATA: progname TYPE sy-repid,

dynnum TYPE sy-dynnr.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_carrid.

CLEAR: dynpro_values[], dynpro_values.

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'

EXPORTING

tabname = 'SFLIGHT'

fieldname = 'CARRID'

SEARCHHELP = ' '

SHLPPARAM = ' '

dynpprog = progname

dynpnr = dynnum

dynprofield = 'P_CARRID'

STEPL = 0

VALUE = ' '

MULTIPLE_CHOICE = ' '

DISPLAY = ' '

SUPPRESS_RECORDLIST = ' '

CALLBACK_PROGRAM = ' '

CALLBACK_FORM = ' '

TABLES

return_tab = ret_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.

SELECT SINGLE connid FROM sflight INTO dynpro_values-fieldvalue WHERE

carrid = ret_tab-fieldval.

dynpro_values-fieldname = 'P_CONNID'.

APPEND dynpro_values.

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = progname

dynumb = dynnum

TABLES

dynpfields = dynpro_values

EXCEPTIONS

invalid_abapworkarea = 1

invalid_dynprofield = 2

invalid_dynproname = 3

invalid_dynpronummer = 4

invalid_request = 5

no_fielddescription = 6

undefind_error = 7

OTHERS = 8.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

AT SELECTION-SCREEN OUTPUT.

break-point.

progname = sy-repid.

dynnum = sy-dynnr.

field_value-fieldname = 'P_CARRID'.

APPEND field_value TO dynpro_values.

In this program, there will be two parameters, when one is clicked, search help appears and you can select any value. When the next parameter is clicked, all values corresponding to the first value selected will be displayed.

This is how a search help can be attached to a parameter in selection screen.

Regards,

Sylendra.

0 Kudos

Hi Brinda,

In my previous program, the second parameter doesn't have a search help.When any value is selected from the search help of first parameter , the corresponding value of second parameter will be displayed.

Just check this program for understanding more about search helps.In this program both the fields will have search helps.

REPORT ZSHAIL_F4HELP .

DATA: BEGIN OF VALUES,

MATNR TYPE MARA-MATNR,

MTART TYPE MARA-MTART,

END OF VALUES.

*

DATA: PROGNAME LIKE SY-REPID,

DYNNUM LIKE SY-DYNNR,

DYNPRO_VALUES TYPE TABLE OF DYNPREAD,

FIELD_VALUE LIKE LINE OF DYNPRO_VALUES,

VALUES_TAB LIKE TABLE OF VALUES WITH HEADER LINE.

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

PARAMETERS : MATNR_N LIKE MARA-MATNR OBLIGATORY,

MTART_N LIKE MARA-MTART.

SELECTION-SCREEN END OF BLOCK B1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR MATNR_N.

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'

EXPORTING

tabname = 'MARA'

fieldname = 'MATNR'

  • SEARCHHELP = ' '

  • SHLPPARAM = ' '

DYNPPROG = PROGNAME

DYNPNR = DYNNUM

DYNPROFIELD = 'MATNR_N'

  • STEPL = 0

  • VALUE = ' '

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • SUPPRESS_RECORDLIST = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • SELECTION_SCREEN = ' '

  • IMPORTING

  • USER_RESET =

  • TABLES

  • RETURN_TAB = VALUES_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.

AT SELECTION-SCREEN OUTPUT.

PROGNAME = SY-REPID.

DYNNUM = SY-DYNNR.

CLEAR: FIELD_VALUE, DYNPRO_VALUES.

FIELD_VALUE-FIELDNAME = 'MATNR_N'.

APPEND FIELD_VALUE TO DYNPRO_VALUES.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR MTART_N.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = PROGNAME

dynumb = DYNNUM

TRANSLATE_TO_UPPER = 'X'

  • REQUEST = ' '

  • PERFORM_CONVERSION_EXITS = ' '

  • PERFORM_INPUT_CONVERSION = ' '

  • DETERMINE_LOOP_INDEX = ' '

tables

dynpfields = dynpro_values

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 DYNPRO_VALUES INDEX 1 INTO FIELD_VALUE.

select matnr mtart from mara into table values_tab where matnr = FIELD_VALUE-FIELDVALUE.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ' '

retfield = 'MTART'

  • PVALKEY = ' '

DYNPPROG = PROGNAME

DYNPNR = DYNNUM

DYNPROFIELD = 'MTART_N'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

VALUE_ORG = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

  • MARK_TAB =

  • IMPORTING

  • USER_RESET =

tables

value_tab = VALUES_TAB

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

Regards,

Sylendra.

Former Member
0 Kudos

Thnaks, that was a great response!