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

Value Request Query

Former Member
0 Likes
977

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

1 ACCEPTED SOLUTION
Read only

anversha_s
Active Contributor
0 Likes
937

hi,

chk this thread.

rgds

anver

7 REPLIES 7
Read only

anversha_s
Active Contributor
0 Likes
937

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>

Read only

Former Member
0 Likes
937

Hi,

u need to use' F4IF_INT_TABLE_VALUE_REQUEST'.

Madhavi

Read only

Former Member
0 Likes
937

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

Read only

Former Member
0 Likes
937

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

Read only

0 Likes
937

hi,

use only field name .

<b>retfield = 'CRS_ID'</b>

Rgds

anver

mark if hlpful

Read only

0 Likes
937

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

Read only

anversha_s
Active Contributor
0 Likes
938

hi,

chk this thread.

rgds

anver