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

Interactive alv

former_member842213
Participant
0 Likes
561

hi,

I need to do inreactive alv using cl_salv_* class,

Can anyone give me sample code for the same.

Thanks a lot!!!!!!!!!!

2 REPLIES 2
Read only

Former Member
0 Likes
451
Read only

uwe_schieferstein
Active Contributor
0 Likes
451

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_CLICK

Regards

Uwe