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: 

Search Help in Cl_GUI_ALV_GRID

acetedi
Participant
0 Kudos
1,417

I have requirement in alv cl_gui_alv_grid to added function search help iam using ref_table and ref_field

that need more function than that so alv field should look like this

example in my alv input 0 then value in databased should see in below... thats is possible on alv cl gui grid

i only know in alv can using F4 using this function (ref_table and ref_field)

8 REPLIES 8

Sandra_Rossi
Active Contributor
0 Kudos
1,318

So, you are asking how to implement a dropdown listbox in an editable CL_GUI_ALV_GRID, right?

If yes, just search these 3 words in the forum, it has been already answered.

acetedi
Participant
0 Kudos
1,318

Thank You for your answering Sandra rossi but that's not a dropdown listbox..

thats my example is from parameter sales organization. So if i input something that value should see even we not using f4 or search help

so that's is also possible in alv (cl_gui_alv_grid)

Thank You

Sandra_Rossi
Active Contributor
0 Kudos
1,318

Okay, so you mean a type-ahead search.

Also answered but can find less answers.

Nope, the feature is not available for CL_GUI_ALV_GRID.

acetedi
Participant
0 Kudos
1,318

Again thank you for your quick response... I appreciate that

so thats also not possible in any alv class like cl_salv_table.

Sandra_Rossi
Active Contributor
1,318

SAP GUI is provided with the GridView.ocx control which is known as the "ALV Grid Control", CL_GUI_ALV_GRID is its direct wrapping class. In Full Screen or Container mode, cl_salv_table is based on CL_GUI_ALV_GRID,

So, no it's not possible.

acetedi
Participant
0 Kudos
1,318

Thank You so much Sandra Rossi

0 Kudos
1,318

Hello,

here this is an example program that create custom search help for field ERNAM

REPORT ztest17.
DATA: gr_grid TYPE REF TO cl_gui_alv_grid.
DATA: gt_data TYPE TABLE OF mara." your structure
DATA: gt_fcat TYPE lvc_t_fcat .
DATA: gs_layo TYPE lvc_s_layo .
DATA: gs_var TYPE disvariant .
CLASS handel_event DEFINITION.
PUBLIC SECTION.
METHODS handle_onf4
FOR EVENT onf4 OF cl_gui_alv_grid
IMPORTING
!e_fieldname
!es_row_no
!e_fieldvalue
!er_event_data .
ENDCLASS.
CLASS handel_event IMPLEMENTATION.
METHOD handle_onf4.
TYPES: BEGIN OF ty_f4values,
ernam TYPE ernam,
END OF ty_f4values.
DATA: IT_f4values TYPE TABLE OF ty_f4values,
wa_f4values TYPE ty_f4values.
DATA: it_retvalu TYPE TABLE OF ddshretval,
wa_retvalu TYPE ddshretval.
FIELD-SYMBOLS <modis> TYPE lvc_t_modi.
CASE e_fieldname.
WHEN 'ERNAM'.
READ TABLE gt_DATA INTO DATA(ls_item) INDEX es_row_no-row_id.
CHECK sy-subRC IS INITIAL.
er_event_data->m_event_handled = 'X'.
" YOU CAN USE SELECE HERE
wa_f4values-ernam = 'TEST1'.
APPEND wa_f4values TO it_f4values.
wa_f4values-ernam = 'TEST2'.
APPEND wa_f4values TO it_f4values.
wa_f4values-ernam = 'TEST3'.
APPEND wa_f4values TO it_f4values.
IF sy-subrc IS INITIAL.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LGORT'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'LGORT'
value_org = 'S'
TABLES
value_tab = it_f4values
return_tab = it_retvalu.
IF it_retvalu IS NOT INITIAL.
READ TABLE it_retvalu INTO wa_retvalu INDEX 1.
e_fieldvalue = wa_retvalu-fieldval.
ASSIGN er_event_data->m_data->* TO <modis>.
<modis> = VALUE #( BASE <modis> ( row_id = es_row_no-row_id
fieldname = e_fieldname
value = e_fieldvalue ) ).
ENDIF.
ENDIF.
ENDCASE.
ENDMETHOD.
ENDCLASS.
DATA obj_reg_hdl TYPE REF TO handel_event.
START-OF-SELECTION.
CALL SCREEN '100'.
FORM display.
IF gr_grid IS NOT BOUND.
CREATE OBJECT gr_grid
EXPORTING
i_parent = cl_gui_container=>default_screen.
PERFORM get_data.
PERFORM create_fcat.
PERFORM create_layout.
" REGISTER HANDELER
IF obj_reg_hdl IS NOT BOUND.
CREATE OBJECT obj_reg_hdl.
ENDIF.
DATA: lv_it_f4 TYPE lvc_t_f4,
lv_wa_f4 TYPE lvc_s_f4.
CLEAR lv_wa_f4.
lv_wa_f4-fieldname = 'ERNAM'.
lv_wa_f4-register = 'X'.
lv_wa_f4-getbefore = space.
lv_wa_f4-chngeafter = space.
APPEND lv_wa_f4 TO lv_it_f4.
CALL METHOD gr_grid->register_f4_for_fields
EXPORTING
it_f4 = lv_it_f4.
SET HANDLER obj_reg_hdl->handle_onf4 FOR gr_grid.
CALL METHOD gr_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
CALL METHOD gr_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter. " Event ID
CALL METHOD gr_grid->set_table_for_first_display
EXPORTING
is_variant = gs_var
is_layout = gs_layo
i_save = 'A'
CHANGING
it_outtab = gt_data
it_fieldcatalog = gt_fcat.
ELSE.
gr_grid->refresh_table_display( ).
ENDIF.
ENDFORM.
FORM create_layout.
CLEAR gs_layo.
gs_layo-sel_mode = 'A'. " EBABLES MUTI ROW SELECTION
gs_layo-zebra = 'X'.
gs_layo-col_opt = 'X'.
gs_layo-cwidth_opt = 'X'.
gs_layo-info_fname = 'COLOR'.
CLEAR gs_var.
gs_var-username = sy-uname.
gs_var-report = sy-repid.
gs_var-handle = '0100'.
ENDFORM.
FORM create_fcat.
DATA: lv_wa_fieldc LIKE LINE OF gt_fcat.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'MARA' " your structure
CHANGING
ct_fieldcat = gt_fcat.
LOOP AT gt_fcat INTO lv_wa_fieldc WHERE fieldname = 'ERNAM'.
lv_wa_fieldc-edit = 'X'.
lv_wa_fieldc-f4availabl = 'X'.
MODIFY gt_fcat FROM lv_wa_fieldc.
ENDLOOP.
ENDFORM.
FORM get_data.
SELECT * FROM mara
INTO CORRESPONDING FIELDS OF TABLE @gt_data UP TO 100 ROWS.
ENDFORM.
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STAT100'.
PERFORM display.
ENDMODULE.
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT' OR 'CANCEL'.
LEAVE PROGRAM.
WHEN OTHERS.
ENDCASE.
ENDMODULE.

0 Kudos
1,318

In fact, after asking several times the OP, it ended that the question was about if type-ahead search is supported in ALV Grid Control or not ==> not supported.