‎2007 Feb 23 8:59 AM
hi,
I need to do inreactive alv using cl_salv_* class,
Can anyone give me sample code for the same.
Thanks a lot!!!!!!!!!!
‎2007 Feb 23 9:01 AM
‎2007 Feb 24 9:01 PM
Hello Santhiya
The following sample report shows how to code the <b>double-click event</b>.
*&---------------------------------------------------------------------*
*& Report ZUS_SDN_CL_SALV_TABLE_INTERACT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zus_sdn_cl_salv_table_interact.
TYPE-POOLS: abap.
DATA:
gt_knb1 TYPE STANDARD TABLE OF knb1.
DATA:
go_table TYPE REF TO cl_salv_table,
go_events TYPE REF TO cl_salv_events_table.
*---------------------------------------------------------------------*
* CLASS lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
handle_double_click FOR EVENT
if_salv_events_actions_table~double_click
OF cl_salv_events_table
IMPORTING
row
column.
ENDCLASS. "lcl_eventhandler DEFINITION
*---------------------------------------------------------------------*
* CLASS lcl_eventhandler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_eventhandler IMPLEMENTATION.
METHOD handle_double_click.
* define local data
DATA:
ls_knb1 TYPE knb1.
READ TABLE gt_knb1 INTO ls_knb1 INDEX row.
IF ( syst-subrc = 0 ).
SET PARAMETER ID 'BUK' FIELD ls_knb1-bukrs.
SET PARAMETER ID 'KUN' FIELD ls_knb1-kunnr.
CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
ENDIF.
ENDMETHOD. "handle_double_click
ENDCLASS. "lcl_eventhandler IMPLEMENTATION
START-OF-SELECTION.
SELECT * FROM knb1 INTO TABLE gt_knb1
WHERE bukrs = '1000'.
* Create ALV grid instance
TRY.
CALL METHOD cl_salv_table=>factory
* EXPORTING
* LIST_DISPLAY = IF_SALV_C_BOOL_SAP=>FALSE
* R_CONTAINER =
* CONTAINER_NAME =
IMPORTING
r_salv_table = go_table
CHANGING
t_table = gt_knb1.
CATCH cx_salv_msg .
ENDTRY.
* Create event instance
go_events = go_table->get_event( ).
* Set event handler
SET HANDLER:
lcl_eventhandler=>handle_double_click FOR go_events.
go_table->display( ).
END-OF-SELECTION.If you look at class <b>CL_SALV_EVENTS_TABLE</b> you will see that the following events are available (on our ECC 5.0):
IF_SALV_EVENTS_LIST~TOP_OF_PAGE
IF_SALV_EVENTS_LIST~END_OF_PAGE
IF_SALV_EVENTS_FUNCTIONS~BEFORE_SALV_FUNCTION
IF_SALV_EVENTS_FUNCTIONS~AFTER_SALV_FUNCTION
IF_SALV_EVENTS_FUNCTIONS~ADDED_FUNCTION
IF_SALV_EVENTS_ACTIONS_TABLE~DOUBLE_CLICK
IF_SALV_EVENTS_ACTIONS_TABLE~LINK_CLICKRegards
Uwe