‎2006 Nov 21 1:14 PM
how do you customize the search help for a particular field?
i came across 2 FM's but i dont know how to use them, they are..
F4IF_FIELD_VALUE_REQUEST
and
F4IF_INT_TABLE_VALUE_REQUEST
i wish to fill in d search help table of a particular field based on the value of another field on the screen...
so pls help me out guys...
THANKS and regards,
Vs
‎2006 Nov 22 8:21 AM
‎2006 Nov 21 1:15 PM
hi,
Check this standard program which exactly matches your requirement.
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.Rgds
Anver
<i><b>pls mark if helpful</b></i>
‎2006 Nov 21 1:15 PM
‎2006 Nov 21 1:18 PM
Hi
See the following code
&----
*& Report ZTEST101
*&
&----
*&
*&
&----
REPORT ztest101.
*Declaration
TABLES:nast,vbak,vbrk,kna1,t685t.
DATA: BEGIN OF li_kschl OCCURS 0,
kschl LIKE nast-kschl,
vtext LIKE t685t-vtext,
END OF li_kschl.
DATA: lt_dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE.
RANGES : zdecp FOR t685t-kschl OCCURS 1." WITH HEADERLINE.
zdecp-sign = 'I'.
zdecp-option = 'CP'.
zdecp-low = 'Z*'.
APPEND zdecp.
*type-pools & alv data declaration
TYPE-POOLS:slis.
*ALV
DATA : ls_layout TYPE slis_layout_alv,
it_fcat TYPE slis_t_fieldcat_alv ,
wa_fcat TYPE slis_fieldcat_alv,
lh TYPE slis_t_listheader,
ls TYPE slis_listheader,
it_events TYPE slis_t_event ,
ls_event TYPE slis_alv_event,
i_sort TYPE slis_t_sortinfo_alv,
l_repid TYPE sy-repid,
w_var TYPE i.
DATA:
wa_events LIKE LINE OF it_events.
wa_events-name = 'USER_COMMAND'.
wa_events-form = 'USER_COMMAND'.
APPEND wa_events TO it_events .
*ALV
DATA:BEGIN OF tab_vbak OCCURS 0,
vbeln LIKE vbak-vbeln,
END OF tab_vbak.
DATA:BEGIN OF tab_vbrk OCCURS 0 ,
vbeln LIKE vbrk-vbeln,
END OF tab_vbrk.
DATA:BEGIN OF tab_nast1 OCCURS 0 ,
kschl LIKE nast-kschl,
objky LIKE nast-objky,
parnr LIKE nast-parnr,
vstat LIKE nast-vstat,
tdcovtitle LIKE nast-tdcovtitle,
usnam LIKE nast-usnam,
datvr LIKE nast-datvr,
uhrvr LIKE nast-uhrvr,
ldest LIKE nast-ldest,
END OF tab_nast1.
DATA tab_nast2 LIKE tab_nast1 OCCURS 0 WITH HEADER LINE.
DATA:BEGIN OF tab_kna1 OCCURS 0,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
END OF tab_kna1.
DATA:BEGIN OF tab_output OCCURS 0,
parnr LIKE nast-parnr,
name1 LIKE kna1-name1,
tdcovtitle LIKE nast-tdcovtitle,
usnam LIKE nast-usnam,
datavr LIKE nast-datvr,
uhrvr LIKE nast-uhrvr,
ldest LIKE nast-ldest,
END OF tab_output.
*Selection Screen
*SELECTION-SCREEN BEGIN OF SCREEN 103.
SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-t03.
SELECT-OPTIONS: so_kschl FOR nast-kschl NO INTERVALS,
so_vstat FOR nast-vstat DEFAULT '1',
so_vbeln FOR vbak-vbeln MODIF ID abc,
so_inv FOR vbrk-vbeln MODIF ID xyz.
*SKIP 1.
PARAMETERS: r1 RADIOBUTTON GROUP radi USER-COMMAND radi DEFAULT 'X',
r2 RADIOBUTTON GROUP radi.
SELECTION-SCREEN END OF BLOCK b4.
*SELECTION-SCREEN END OF SCREEN 103.
INITIALIZATION.
l_repid = sy-repid.
so_kschl-low = 'z*'.
*AT SELECTION-SCREEN.
AT SELECTION-SCREEN OUTPUT.
IF r1 = 'X'.
CLEAR so_inv.
REFRESH so_inv.
LOOP AT SCREEN.
IF screen-group1 = 'XYZ'.
screen-input = '0'.
MODIFY SCREEN.
CONTINUE.
ENDIF.
ENDLOOP.
ENDIF.
IF r2 = 'X'.
CLEAR so_vbeln.
REFRESH so_vbeln.
LOOP AT SCREEN.
IF screen-group1 = 'ABC'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_kschl-low.
DATA: BEGIN OF li_kschl OCCURS 0,
kschl LIKE nast-kschl,
vtext LIKE t685t-vtext,
END OF li_kschl.
*
DATA: lt_dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE.
RANGES : zdecp FOR t685t-kschl OCCURS 1." WITH HEADERLINE.
zdecp-sign = 'I'.
zdecp-option = 'CP'.
zdecp-low = 'Z*'.
APPEND zdecp.
SELECT kschl vtext INTO TABLE li_kschl FROM
t685t WHERE spras = sy-langu
AND kschl IN zdecp.
AND KSCHL CP 'Z'.
SORT li_kschl BY kschl.
DELETE ADJACENT DUPLICATES FROM li_kschl COMPARING kschl .
IF so_kschl-low IS INITIAL.
so_kschl-low = 'z*'.
ENDIF.
<b> CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'KSCHL'
dynpnr = sy-dynnr
dynpprog = sy-repid
dynprofield = 'z*'
value_org = 'S'
TABLES
value_tab = li_kschl
return_tab = li_ret_tab
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.</b>
*Start of selection
START-OF-SELECTION.
*Field catalog
PERFORM field_catalog.
PERFORM get_data.
END-OF-SELECTION.
*Display ALV
PERFORM display_data.
&----
*& Form GET_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_data .
*Fetching from Nast table for processed documents
SELECT kschl objky parnr vstat tdcovtitle usnam datvr uhrvr ldest
INTO TABLE tab_nast1
FROM nast
WHERE kschl IN so_kschl
AND vstat IN so_vstat.
*Fetching data from KNA1
*****insert by Manas
IF tab_nast1[] IS NOT INITIAL.
SORT tab_nast1 BY parnr.
SELECT kunnr name1 INTO TABLE tab_kna1
FROM kna1
FOR ALL ENTRIES IN tab_nast1
WHERE kunnr = tab_nast1-parnr.
ENDIF.
IF sy-subrc NE 0.
WRITE 😕 'Not valid selection'.
ENDIF.
*For sales order processed document
IF r1 = 'X'.
CLEAR t685t.
SELECT SINGLE vtext INTO t685t-vtext FROM t685t
WHERE kschl IN so_kschl
AND spras = sy-langu .
LOOP AT tab_nast1 WHERE objky IN so_vbeln.
READ TABLE tab_kna1 WITH KEY kunnr = tab_nast1-parnr.
tab_output-parnr = tab_nast1-parnr.
tab_output-name1 = tab_kna1-name1.
TAB_OUTPUT-TDCOVTITLE = TAB_NAST1-TDCOVTITLE.
tab_output-tdcovtitle = t685t-vtext.
tab_output-usnam = tab_nast1-usnam.
tab_output-datavr = tab_nast1-datvr.
tab_output-uhrvr = tab_nast1-uhrvr.
tab_output-ldest = tab_nast1-ldest.
APPEND tab_output.
ENDLOOP.
ENDIF.
*For Invoice processed document
IF r2 = 'X'.
CLEAR t685t.
SELECT SINGLE vtext INTO t685t-vtext FROM t685t
WHERE kschl IN so_kschl
AND spras = sy-langu.
LOOP AT tab_nast1 WHERE objky IN so_inv.
READ TABLE tab_kna1 WITH KEY kunnr = tab_nast1-parnr.
tab_output-parnr = tab_nast1-parnr.
tab_output-name1 = tab_kna1-name1.
TAB_OUTPUT-TDCOVTITLE = TAB_NAST1-TDCOVTITLE.
tab_output-tdcovtitle = t685t-vtext.
tab_output-usnam = tab_nast1-usnam.
tab_output-datavr = tab_nast1-datvr.
tab_output-uhrvr = tab_nast1-uhrvr.
tab_output-ldest = tab_nast1-ldest.
APPEND tab_output.
ENDLOOP.
ENDIF.
ENDFORM. " GET_DATA
*END-OF-SELECTION
&----
*& Form FIELD_CATALOG
&----
text
----
--> p1 text
<-- p2 text
----
FORM field_catalog .
wa_fcat-col_pos = w_var.
wa_fcat-tabname = 'TAB_OUTPUT'.
wa_fcat-fieldname = 'PARNR'.
wa_fcat-key = 'X'.
wa_fcat-seltext_m = 'Customer'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ADD 1 TO w_var.
wa_fcat-col_pos = w_var.
wa_fcat-tabname = 'TAB_OUTPUT'.
wa_fcat-fieldname = 'NAME1'.
wa_fcat-seltext_m = 'Customer Name'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ADD 1 TO w_var.
wa_fcat-col_pos = w_var.
wa_fcat-tabname = 'TAB_OUTPUT'.
wa_fcat-fieldname = 'TDCOVTITLE'.
wa_fcat-seltext_m = 'Print Parameters'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ADD 1 TO w_var.
wa_fcat-col_pos = w_var.
wa_fcat-tabname = 'TAB_OUTPUT'.
wa_fcat-fieldname = 'USNAM'.
wa_fcat-seltext_m = 'User Name'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ADD 1 TO w_var.
wa_fcat-col_pos = w_var.
wa_fcat-tabname = 'TAB_OUTPUT'.
wa_fcat-fieldname = 'DATAVR'.
wa_fcat-seltext_m = 'Processing date'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ADD 1 TO w_var.
wa_fcat-col_pos = w_var.
wa_fcat-tabname = 'TAB_OUTPUT'.
wa_fcat-fieldname = 'UHRVR'.
wa_fcat-seltext_m = 'Processing Time'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ADD 1 TO w_var.
wa_fcat-col_pos = w_var.
wa_fcat-tabname = 'TAB_OUTPUT'.
wa_fcat-fieldname = 'LDEST'.
wa_fcat-seltext_m = 'Spool:Output device'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
ADD 1 TO w_var.
ENDFORM. " FIELD_CATALOG
&----
*& Form DISPLAY_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_data .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = l_repid
I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP'
i_callback_top_of_page = 'F_TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
i_background_id = 'ALV_BACKGROUND'
I_GRID_TITLE =
I_GRID_SETTINGS =
is_layout = ls_layout
it_fieldcat = it_fcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
it_sort = i_sort[]
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
i_save = 'A'
IS_VARIANT =
it_events = it_events
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
i_screen_start_column = 0
i_screen_start_line = 0
i_screen_end_column = 0
i_screen_end_line = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = tab_output
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
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. " DISPLAY_DATA
&----
*& Form TITLE
&----
text
----
--> p1 text
<-- p2 text
----
FORM f_top_of_page .
DATA : v_n TYPE i.
CLEAR ls.
REFRESH lh.
ls-typ = 'H'.
ls-info = 'Processed Documents'.
APPEND ls TO lh.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = lh.
REFRESH lh.
ENDFORM. " F_TOP_OF_PAGE.
&----
*& Form USER_COMMAND
&----
text
----
-->UCOMM text
-->SELFIELD text
----
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
DATA: report LIKE sy-repid,
code LIKE sy-ucomm.
report = sy-repid.
CASE sy-ucomm.
WHEN 'BACK'.
CALL SELECTION-SCREEN 100.
ENDCASE.
ENDFORM. "USER_COMMAND
Mark points if helpful.
Regs
Manas Ranjan Panda
‎2006 Nov 22 7:07 AM
i ve got the search help table filled according to my requirement,
but the problem is the contents of the line are not being copied to the screen field when
the line is selected from the hit list .......
heres d code
LOOP AT gt_course_mod INTO lwa_course_mod
WHERE dept_id EQ zcm_faculty-dept_id.
MOVE-CORRESPONDING lwa_course_mod TO ls_course_id.
APPEND ls_course_id TO lt_course_id.
CLEAR ls_course_id.
ENDLOOP.
IF NOT lt_course_id IS INITIAL.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'ZCM_COURSE_S-CRS_ID'
DYNPPROG = 'SAPMZVISH_FACULTY'
DYNPNR = '0200'
DYNPROFIELD = 'ZCM_COURSE_S-CRS_ID '
STEPL = 0
WINDOW_TITLE = 'Course id'
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
TABLES
value_tab = lt_course_id
FIELD_TAB =
RETURN_TAB =
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
ENDIF.
pls help out ...
thnks
Vs
‎2006 Nov 22 7:09 AM
hi,
use only field name .
<b>retfield = 'CRS_ID'</b>
Rgds
anver
mark if hlpful
‎2006 Nov 22 7:20 AM
hi anversha,
NO that doesnt work...
ZCM_FACULTY-CRS_ID is a field inside a Table control
what do the following fields function as...
DDIC_STRUCTURE and DYNPROFIELD
thnks,
Vs
‎2006 Nov 22 8:21 AM