Hello Gurus,
This is my code, where when i double click on column it is not going into next display list, and how to add button on that column.
Please help me out..
TYPES : BEGIN OF TY_FIRST,
A(5) TYPE N,
END OF TY_FIRST,
BEGIN OF TY_SECOND,
A(5) TYPE N,
AN(5) TYPE N,
END OF TY_SECOND,
BEGIN OF TY_THIRD,
AN(5) TYPE N,
ANN(5) TYPE N,
END OF TY_THIRD.
DATA : T_FIRST TYPE TABLE OF TY_FIRST,
T_SECOND TYPE TABLE OF TY_SECOND,
T_THIRD TYPE TABLE OF TY_THIRD,
W_FIRST TYPE TY_FIRST,
W_SECOND TYPE TY_SECOND,
W_THIRD TYPE TY_THIRD.
DATA : gr_table TYPE REF TO cl_salv_table, "Salv Class
gr_functions TYPE REF TO cl_salv_functions,
gr_display TYPE REF TO cl_salv_display_settings,
color TYPE lvc_s_colo,
gr_columns TYPE REF TO cl_salv_columns_table,
gr_column TYPE REF TO cl_salv_column_table,
gr_sorts TYPE REF TO cl_salv_sorts,
gr_filter TYPE REF TO cl_salv_filters,
gr_layout TYPE REF TO cl_salv_layout,
GR_EVENT TYPE REF TO cl_salv_events_table.
W_FIRST-A = '1'.
APPEND W_FIRST TO T_FIRST.
W_FIRST-A = '2'.
APPEND W_FIRST TO T_FIRST.
W_FIRST-A = '3'.
APPEND W_FIRST TO T_FIRST.
W_SECOND-A = '1'.
W_SECOND-AN = '11'.
APPEND W_SECOND TO T_SECOND.
W_SECOND-A = '1'.
W_SECOND-AN = '12'.
APPEND W_SECOND TO T_SECOND.
W_SECOND-A = '1'.
W_SECOND-AN = '13'.
APPEND W_SECOND TO T_SECOND.
W_SECOND-A = '2'.
W_SECOND-AN = '21'.
APPEND W_SECOND TO T_SECOND.
W_SECOND-A = '3'.
W_SECOND-AN = '32'.
APPEND W_SECOND TO T_SECOND.
W_SECOND-A = '3'.
W_SECOND-AN = '33'.
APPEND W_SECOND TO T_SECOND.
W_THIRD-AN = '11'.
W_THIRD-ANN = '111'.
APPEND W_THIRD TO T_THIRD.
W_THIRD-AN = '11'.
W_THIRD-ANN = '112'.
APPEND W_THIRD TO T_THIRD.
W_THIRD-AN = '21'.
W_THIRD-ANN = '211'.
APPEND W_THIRD TO T_THIRD.
W_THIRD-AN = '31'.
W_THIRD-ANN = '312'.
APPEND W_THIRD TO T_THIRD.
*&---------------------------------------------------------------------*
*& CL_EVENT Class Declaration
*&---------------------------------------------------------------------*
CLASS CL_EVENT DEFINITION.
PUBLIC SECTION.
METHODS : first_display.
CLASS-METHODS on_double_click " DOUBLE_CLICK
FOR EVENT if_salv_events_actions_table~double_click
OF cl_salv_events_table
IMPORTING row
column.
ENDCLASS.
*&---------------------------------------------------------------------*
*& CL_EVENT Class Implementation
*&---------------------------------------------------------------------*
CLASS CL_EVENT IMPLEMENTATION.
METHOD first_display.
PERFORM SUB_DISPLAY..
ENDMETHOD.
METHOD on_double_click.
PERFORM SUB_DISPLAY1..
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA : OBJ TYPE REF TO CL_EVENT.
CREATE OBJECT OBJ.
OBJ->first_display( ).
*&---------------------------------------------------------------------*
*& Form SUB_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SUB_DISPLAY .
TRY.
cl_salv_table=>factory( IMPORTING r_salv_table = gr_table
CHANGING t_table = T_FIRST ).
gr_functions = gr_table->get_functions( ).
gr_functions->set_all( abap_true ).
gr_display = gr_table->get_display_settings( ).
gr_display->set_striped_pattern( cl_salv_display_settings=>true ).
gr_columns = gr_table->get_columns( ).
gr_columns->set_optimize( 'X' ).
gr_column ?= gr_columns->get_column( 'A' ).
GR_column->set_cell_type( if_salv_c_cell_type=>hotspot ).
color-col = '5'.
gr_column->set_color( color ).
gr_column ?= gr_columns->get_column( 'A' ).
GR_column->set_cell_type( if_salv_c_cell_type=>hotspot ).
color-col = '2'.
gr_column->set_color( color ).
*
DATA ls_cell_type TYPE LINE OF salv_t_int4_column.
ls_cell_type-columnname = 'A'.
ls_cell_type-value = cl_salv_column_list=>button.
SET HANDLER cl_event=>on_double_click FOR ALL INSTANCES.
gr_table->display( ).
CATCH cx_salv_EXISTING. " cl_salv_table=>factory()
WRITE: / 'cx_salv_msg exception'.
STOP.
CATCH cx_salv_DATA_ERROR. " cl_salv_table=>factory()
WRITE: / 'cx_salv_msg exception'.
STOP.
CATCH cx_salv_msg. " cl_salv_table=>factory()
WRITE: / 'cx_salv_msg exception'.
STOP.
CATCH cx_salv_not_found. " cl_salv_columns_table->get_column()
WRITE: / 'cx_salv_not_found exception'.
STOP.
ENDTRY.
ENDFORM. " SUB_DISPLAY
*&---------------------------------------------------------------------*
*& Form SUB_DISPLAY1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SUB_DISPLAY1 .
TRY.
cl_salv_table=>factory( IMPORTING r_salv_table = gr_table
CHANGING t_table = T_SECOND ).
GR_TABLE->DISPLAY( ).
CATCH cx_salv_msg. " cl_salv_table=>factory()
WRITE: / 'cx_salv_msg exception'.
STOP.
ENDTRY.
ENDFORM.