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

hotspot_click

Former Member
0 Likes
721

Hi can any one tell how can i write the code for the predefined event Hotspot_click in the class cl_gui_alv_grid.

thanks,

vaasu.

Hi can any one tell how can i write the code for the predefined event Hotspot_click in the class cl_gui_alv_grid.

thanks,

vaasu.

4 REPLIES 4
Read only

former_member156446
Active Contributor
0 Likes
676

you need to assign a user command for double click and use a case statement like below..


CASE r_ucomm.

* When a record is selected
WHEN '&IC1'.
"do some thing
when 'DC'.
"do some thing else
endcase.

Read only

Former Member
0 Likes
676

Hi,

1. Define a class.

2. Define a method. In this method write the code for the action

3. Declare data <xxx> TYPE REF TO lcl_event_handler.

4. Create the object <XXX>

5. SET HANDLER gr_event_handler-><call ur method>

If the hint is usefulu2026 Say thanks by rewardu2026.

Regards,

Prabhu Rajesh

Read only

0 Likes
676

Thanks for the Replay but we have a predefined event hotspot_click in the class cl_gui_alv_grid.

Does this work or we have to create the class.

thanks

vaasu

Read only

0 Likes
676

check this sample code

*&------------------------------------------------------*
*& Report displaying an ALV GRID CONTROL which responds *
*& to HOTSPOT click event                               *
*&------------------------------------------------------*

REPORT  ZZ_ALV_GRID_RESPONDING_HOTSPOT_CLICK .

TABLES : BKPF .
DATA : I_BKPF TYPE STANDARD TABLE OF BKPF WITH HEADER LINE .
DATA : MOK_CODE LIKE SY-UCOMM .
DATA : OK_CODE LIKE SY-UCOMM .


DATA : MM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER .
DATA : MM_ALVGRID  TYPE REF TO CL_GUI_ALV_GRID .

DATA : CT_FIELDCAT TYPE STANDARD TABLE OF LVC_S_FCAT   .
DATA : WA_FIELDCAT LIKE LVC_S_FCAT   .


*------------------------------------------------------*
*       CLASS RESPOND_EVENTS DEFINITION
*------------------------------------------------------*
*------------------------------------------------------*
CLASS RESPOND_EVENTS DEFINITION  .
  PUBLIC SECTION .
    METHODS : RESPOND_HOTSPOT_CLICK FOR EVENT 
             HOTSPOT_CLICK OF
             CL_GUI_ALV_GRID IMPORTING  E_ROW_ID
                                        E_COLUMN_ID
                                        ES_ROW_NO.
ENDCLASS .                    "RESPOND_EVENTS DEFINITION

*------------------------------------------------------*
*     CLASS RESPOND_EVENTS IMPLEMENTATION
*------------------------------------------------------*
*------------------------------------------------------*
CLASS RESPOND_EVENTS IMPLEMENTATION .

  METHOD RESPOND_HOTSPOT_CLICK  .
 
    CLEAR BKPF .
    READ TABLE I_BKPF INDEX  E_ROW_ID INTO BKPF .
    IF SY-SUBRC EQ 0 .
      SET PARAMETER ID 'BLN' FIELD BKPF-BELNR .
      SET PARAMETER ID 'BUK' FIELD BKPF-BUKRS .
      SET PARAMETER ID 'GJR' FIELD BKPF-GJAHR .
      CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN .

    ENDIF .

  ENDMETHOD .            "RESPOND_HOTSPOT_CLICK
ENDCLASS .               "RESPOND_EVENTS IMPLEMENTATION

DATA : I_RESPOND_EVENTS TYPE REF TO RESPOND_EVENTS  .

*=====================================================
* SELECTION SCREEN - ( DEFAULT ) 
*=====================================================
SELECT-OPTIONS : S_BELNR FOR I_BKPF-BELNR  OBLIGATORY.

*=====================================================
* START OF SELECTION
*=====================================================
START-OF-SELECTION .

  SELECT * FROM BKPF 
  INTO CORRESPONDING FIELDS OF TABLE I_BKPF
  WHERE BELNR IN S_BELNR .

*======================================================
* END-OF-SELECTION  .
*======================================================
END-OF-SELECTION  .
  CALL SCREEN 100 .
* ------------------------------------------------------
* The screen 100 has a custom control named 'MCONTAINER'
* and a command button with function code 'QUIT' . 
* Of course has an element called OK_CODE like sy-ucomm .
* The flow logic of the screen has in the output section
* the module PREPARE_OUTPUT , 
* and in the input section the module USER_COMMAND_0100 .
* ------------------------------------------------------

*&-----------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&-----------------------------------------------------*
*  
*------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
  CLEAR : MOK_CODE .
  MOK_CODE = OK_CODE .
  CLEAR : OK_CODE .
  CASE MOK_CODE .
    WHEN 'QUIT' .
      LEAVE TO SCREEN 0 .
  ENDCASE .
ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&-----------------------------------------------------*
*&      Module  OUTPUT  OUTPUT
*&-----------------------------------------------------*
*       text
*------------------------------------------------------*
MODULE PREPARE_OUTPUT OUTPUT .
  IF MM_CONTAINER  IS INITIAL .
    CREATE OBJECT MM_CONTAINER 
    EXPORTING CONTAINER_NAME = 'MCONTAINER' .

    CREATE OBJECT MM_ALVGRID 
    EXPORTING I_PARENT = MM_CONTAINER .

    PERFORM CATALOG_CREATION .

    PERFORM SHOW_DATA .

    CREATE OBJECT I_RESPOND_EVENTS .
    SET HANDLER I_RESPOND_EVENTS->RESPOND_HOTSPOT_CLICK 
    FOR MM_ALVGRID .

  ENDIF .
ENDMODULE.                 " OUTPUT  OUTPUT
*&----------------------------------------------------*
*&      Form  CATALOG_CREATION
*&----------------------------------------------------*
*
FORM CATALOG_CREATION .

  call function 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name = 'BKPF'
    CHANGING
      ct_fieldcat      = Ct_fieldcat.


  LOOP AT Ct_fieldcat INTO WA_fieldcat.
    IF  ( WA_FIELDCAT-FIELDNAME NE 'BUKRS' )
    AND ( WA_FIELDCAT-FIELDNAME NE 'BELNR' )
    AND ( WA_FIELDCAT-FIELDNAME NE 'GJAHR' ) .
      WA_FIELDCAT-HOTSPOT = 'X' .
      MODIFY Ct_fieldcat FROM WA_fieldcat.
    ENDIF .
  ENDLOOP.

  DELETE Ct_fieldcat  WHERE HOTSPOT = 'X' .

  LOOP AT Ct_fieldcat INTO WA_fieldcat.
    IF  WA_FIELDCAT-FIELDNAME EQ 'BELNR'   .
      WA_FIELDCAT-HOTSPOT = 'X' .
      MODIFY Ct_fieldcat FROM WA_fieldcat.
    ENDIF .

  ENDLOOP.


ENDFORM.                    " CATALOG_CREATION
*&--------------------------------------------------*
*&      Form  SHOW_DATA
*&--------------------------------------------------*
FORM SHOW_DATA .
  CALL METHOD MM_ALVGRID->SET_TABLE_FOR_FIRST_DISPLAY
    CHANGING
      IT_OUTTAB       = I_BKPF[]
      IT_FIELDCATALOG = Ct_fieldcat[].
ENDFORM.                    " SHOW_DATA

check the [link|http://sap.ittoolbox.com/code/archives.asp?i=10&d=3411&a=s]