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

Search help problem

Former Member
0 Likes
577

Hi All,

I have one table maint. generator created from maint. view.In that i have two fields where in i have assigned search helps to these two fields.

My requirement is based on value entered from first search help, values should be populated in second search help.

can this be done when creating search help,if so how to do it. Please suggest some solution.

Thnx in advance.

Regards,

Pavvi.

6 REPLIES 6
Read only

UmaArjunan
Active Participant
0 Likes
556

While creating the search help , you can populate the other field value by creating

search help exits in the relevan search help.

write your logic in the search help exits and use the exits inside the search help.

another way is you can search standard search help and see how they have written search help exits.

i assume you are creating your own search help. If it is a standard search help. please provide the same here.

Read only

Former Member
0 Likes
556

Hi,

Example 1:

  • Internal table to read Selection Screen Parameters

DATA BEGIN OF ws_dynpread OCCURS 0.

INCLUDE STRUCTURE dynpread. " Fields of the current screen

DATA END OF ws_dynpread.

CLEAR: ws_dynpread, ws_dynpread[].

  • MOVE c_r_appl TO ws_dynpread-fieldname.

MOVE pf_c_appl TO ws_dynpread-fieldname.

APPEND ws_dynpread.

  • Read contents of selection screen parameters before PAI data transfer

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-repid

dynumb = sy-dynnr

TABLES

dynpfields = ws_dynpread

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 e228(ke) WITH 'Application Server'(003)

'Presentation Server'(004).

ENDIF. " IF sy-subrc <> 0

  • Read which Server is specifed on the Selection Screen.

READ TABLE ws_dynpread INDEX 1.

IF sy-subrc EQ 0.

IF ws_dynpread-fieldvalue EQ c_x.

  • Application Server is specified

MOVE c_x TO pf_appl.

CLEAR pf_pre.

ELSE.

  • Presentation Server is specified.

MOVE c_x TO pf_pre.

CLEAR pf_appl.

ENDIF. " IF ws_dynpread-fieldvalue ...

ENDIF. " IF sy-subrc EQ 0.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Example 2:

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

REFRESH : i_adrnr, i_regcoun, i_return_tab.

CLEAR:wa_return_tab.

*Read the Screen fields

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

TABLES

dynpfields = i_dynp

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.

SELECT adrnr FROM vbpa

INTO TABLE i_adrnr

WHERE parvw = s_parvw-low

AND kunnr >= s_kunnr-low OR kunnr <= s_kunnr-high.

IF sy-subrc EQ 0.

SELECT country region INTO TABLE i_regcoun

FROM adrc FOR ALL ENTRIES IN i_adrnr

WHERE addrnumber = i_adrnr-adrnr.

IF sy-subrc EQ 0 AND i_regcoun[] IS NOT INITIAL.

  • Function module for f4 help

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = c_regio

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_REGIO' "S_REGIO-LOW'

window_title = 'SELECT COUNTRY AND REGION'

value_org = 'S'

callback_program = sy-cprog

TABLES

value_tab = i_regcoun

return_tab = i_return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc = 0.

READ TABLE i_return_tab INTO wa_return_tab INDEX 1.

s_regio-low = wa_return_tab-fieldval.

READ TABLE i_regcoun WITH KEY region = s_regio-low .

s_land1-low = i_regcoun-country.

READ TABLE i_dynp WITH KEY fieldname = 'S_LAND1-LOW'.

MOVE s_land1-low TO i_dynp-fieldvalue.

APPEND i_dynp.

*Set values to screen

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

TABLES

dynpfields = i_dynp

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.

ENDIF.

ENDIF.

ENDIF.

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

REFRESH : i_return_tab.

CLEAR:wa_return_tab.

IF i_regcoun[] IS NOT INITIAL.

  • Function module for f4 help

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = c_regio

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_REGIO' "S_REGIO-LOW'

window_title = 'SELECT COUNTRY AND REGION'

value_org = 'S'

callback_program = sy-cprog

TABLES

value_tab = i_regcoun

return_tab = i_return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc = 0.

READ TABLE i_return_tab INTO wa_return_tab INDEX 1.

s_regio-high = wa_return_tab-fieldval.

READ TABLE i_regcoun WITH KEY region = s_regio-high .

s_land1-high = i_regcoun-country.

READ TABLE i_dynp WITH KEY fieldname = 'S_LAND1-HIGH'.

MOVE s_land1-high TO i_dynp-fieldvalue.

APPEND i_dynp.

*Set values to screen

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

TABLES

dynpfields = i_dynp

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.

ENDIF.

ENDIF.

I guess this will resolve your question.

Read only

Former Member
0 Likes
556

Hi,

Example 1:

  • Internal table to read Selection Screen Parameters

DATA BEGIN OF ws_dynpread OCCURS 0.

INCLUDE STRUCTURE dynpread. " Fields of the current screen

DATA END OF ws_dynpread.

CLEAR: ws_dynpread, ws_dynpread[].

  • MOVE c_r_appl TO ws_dynpread-fieldname.

MOVE pf_c_appl TO ws_dynpread-fieldname.

APPEND ws_dynpread.

  • Read contents of selection screen parameters before PAI data transfer

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-repid

dynumb = sy-dynnr

TABLES

dynpfields = ws_dynpread

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 e228(ke) WITH 'Application Server'(003)

'Presentation Server'(004).

ENDIF. " IF sy-subrc <> 0

  • Read which Server is specifed on the Selection Screen.

READ TABLE ws_dynpread INDEX 1.

IF sy-subrc EQ 0.

IF ws_dynpread-fieldvalue EQ c_x.

  • Application Server is specified

MOVE c_x TO pf_appl.

CLEAR pf_pre.

ELSE.

  • Presentation Server is specified.

MOVE c_x TO pf_pre.

CLEAR pf_appl.

ENDIF. " IF ws_dynpread-fieldvalue ...

ENDIF. " IF sy-subrc EQ 0.

**************

Example 2:

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

REFRESH : i_adrnr, i_regcoun, i_return_tab.

CLEAR:wa_return_tab.

*Read the Screen fields

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

TABLES

dynpfields = i_dynp

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.

SELECT adrnr FROM vbpa

INTO TABLE i_adrnr

WHERE parvw = s_parvw-low

AND kunnr >= s_kunnr-low OR kunnr <= s_kunnr-high.

IF sy-subrc EQ 0.

SELECT country region INTO TABLE i_regcoun

FROM adrc FOR ALL ENTRIES IN i_adrnr

WHERE addrnumber = i_adrnr-adrnr.

IF sy-subrc EQ 0 AND i_regcoun[] IS NOT INITIAL.

  • Function module for f4 help

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = c_regio

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_REGIO' "S_REGIO-LOW'

window_title = 'SELECT COUNTRY AND REGION'

value_org = 'S'

callback_program = sy-cprog

TABLES

value_tab = i_regcoun

return_tab = i_return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc = 0.

READ TABLE i_return_tab INTO wa_return_tab INDEX 1.

s_regio-low = wa_return_tab-fieldval.

READ TABLE i_regcoun WITH KEY region = s_regio-low .

s_land1-low = i_regcoun-country.

READ TABLE i_dynp WITH KEY fieldname = 'S_LAND1-LOW'.

MOVE s_land1-low TO i_dynp-fieldvalue.

APPEND i_dynp.

*Set values to screen

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

TABLES

dynpfields = i_dynp

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.

ENDIF.

ENDIF.

ENDIF.

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

REFRESH : i_return_tab.

CLEAR:wa_return_tab.

IF i_regcoun[] IS NOT INITIAL.

  • Function module for f4 help

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = c_regio

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'S_REGIO' "S_REGIO-LOW'

window_title = 'SELECT COUNTRY AND REGION'

value_org = 'S'

callback_program = sy-cprog

TABLES

value_tab = i_regcoun

return_tab = i_return_tab

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc = 0.

READ TABLE i_return_tab INTO wa_return_tab INDEX 1.

s_regio-high = wa_return_tab-fieldval.

READ TABLE i_regcoun WITH KEY region = s_regio-high .

s_land1-high = i_regcoun-country.

READ TABLE i_dynp WITH KEY fieldname = 'S_LAND1-HIGH'.

MOVE s_land1-high TO i_dynp-fieldvalue.

APPEND i_dynp.

*Set values to screen

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

TABLES

dynpfields = i_dynp

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.

ENDIF.

ENDIF.

I guess this will resolve your question.

Read only

0 Likes
556

Thnx for ur reply,

I have created a search help exit and in that am trying to extract the value entered in 1st field.

The thing is i have two fields in table control.So in search help exit how can i get the value entered in 1st field.

Is there any FM to get it...pls respond soon...

Thnx in adv

Read only

0 Likes
556

Hi,

Use FM DYNP_VALUES_READ

Read only

0 Likes
556

Thnx...

I have used the function module and gave report name and screen number as import parameters and passed internal table with FIELDNAME=<Screen field name> and FIELDVALUE=0 to tables parameter.

But i didnot get any value entered in field.What might be the problem??????

Some body suggested me that the value entered in field of table control will be stored dynamically in one background structure....Can anyone know the name of structure.

Pls respond back....