‎2008 Dec 13 5:18 AM
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.
‎2008 Dec 13 1:49 PM
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.
‎2008 Dec 15 4:00 AM
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.
‎2008 Dec 15 4:01 AM
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.
‎2008 Dec 15 6:58 AM
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
‎2008 Dec 15 7:00 AM
‎2008 Dec 16 7:58 AM
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....