Skip to Content
0
Former Member
Sep 10, 2007 at 09:15 PM

hotspot click in methods for alv grid list

4453 Views

Hi all ,

i written a program for grid display and hotspot click.

but it is not capturing the value at the event hotspot click,

please anybody help me in capturing the value in the following code.

it will be great will it happens soon.

REPORT zag_tables MESSAGE-ID zag .

DATA : gt_tables TYPE TABLE OF zag_tables,

gs_tables type zag_tables.

DATA : gt_cust_cont TYPE REF TO cl_gui_custom_container ,

gt_alv_grid TYPE REF TO cl_gui_alv_grid,

gt_cont TYPE scrfname VALUE 'ZAG_TABLES'.

*data declarations for grid layout

DATA : gt_fieldcat TYPE lvc_t_fcat,

gs_fieldcat TYPE lvc_s_fcat,

gs_layout TYPE lvc_s_layo,

gs_variant TYPE disvariant.

DATA : gv_repid TYPE syrepid,

okcode TYPE syucomm..

*data : gs_row_id type lvc_s_row,

  • gs_col_id type lvc_s_col,

  • gs_row_no type lvc_s_roid.

data : e_row_id type lvc_s_row,

gs_col_id type lvc_s_col,

gs_row_no type lvc_s_roid.

*CLASS DEFINITIONS

CLASS cl_event_handler DEFINITION.

PUBLIC SECTION.

CLASS-METHODs : cm_hotspot_click FOR EVENT hotspot_click OF

cl_gui_alv_grid IMPORTING

e_row_id e_column_id es_row_no .

ENDCLASS.

----


  • CLASS cl_event_handler IMPLEMENTATION

----


  • ........ *

----


CLASS cl_event_handler IMPLEMENTATION.

METHOD : cm_hotspot_click .

PERFORM hotspot_click.

ENDMETHOD.

ENDCLASS.

START-OF-SELECTION.

PERFORM select_data.

END-OF-SELECTION.

CALL SCREEN 100.

&----


*& Form select_data

&----


----


*

  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM select_data.

SELECT * FROM zag_tables INTO TABLE gt_tables.

ENDFORM. " select_data

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'ZAG_TABLES'.

SET TITLEBAR 'ZAG_TABLES'.

gv_repid = sy-repid.

IF gt_cust_cont IS INITIAL.

CREATE OBJECT gt_cust_cont

EXPORTING

container_name = gt_cont

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5

others = 6

.

IF sy-subrc <> 0.

ENDIF.

CREATE OBJECT gt_alv_grid

EXPORTING

  • I_SHELLSTYLE = 0

  • I_LIFETIME =

i_parent = gt_cust_cont

  • I_APPL_EVENTS = space

  • I_PARENTDBG =

  • I_APPLOGPARENT =

  • I_GRAPHICSPARENT =

  • I_USE_VARIANT_CLASS = SPACE

  • I_NAME =

EXCEPTIONS

error_cntl_create = 1

error_cntl_init = 2

error_cntl_link = 3

error_dp_create = 4

others = 5

.

IF sy-subrc <> 0.

ENDIF.

ELSE.

CALL METHOD gt_alv_grid->refresh_table_display

EXCEPTIONS

finished = 1

OTHERS = 2

.

IF sy-subrc <> 0.

ENDIF.

ENDIF.

*perform layout changing gs_layout.

PERFORM fieldcat CHANGING gt_fieldcat.

*perform variant changing gs_variant.

gs_layout-zebra = 'X'.

gs_layout-sel_mode = 'A'.

gs_variant-report = gv_repid.

SET HANDLER cl_event_handler=>cm_hotspot_click FOR gt_alv_grid.

CALL METHOD gt_alv_grid->set_table_for_first_display

EXPORTING

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • I_CONSISTENCY_CHECK =

  • I_STRUCTURE_NAME =

is_variant = gs_variant

i_save = 'A'

i_default = 'X'

is_layout = gs_layout

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

it_outtab = gt_tables

it_fieldcatalog = gt_fieldcat

  • IT_SORT =

  • IT_FILTER =

EXCEPTIONS

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 3

OTHERS = 4

.

IF sy-subrc <> 0.

ENDIF.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Form fieldcat

&----


  • text

----


  • <--P_GS_fieldcat text

----


FORM fieldcat CHANGING gt_fieldcat TYPE lvc_t_fcat.

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

EXPORTING

  • I_BUFFER_ACTIVE =

i_structure_name = 'ZAG_TABLES'

  • I_CLIENT_NEVER_DISPLAY = 'X'

  • I_BYPASSING_BUFFER =

CHANGING

ct_fieldcat = gt_fieldcat

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3

.

IF sy-subrc <> 0.

ENDIF.

LOOP AT gt_fieldcat INTO gs_fieldcat.

gs_fieldcat-fieldname = 'MANDT'.

gs_fieldcat-no_out = ''.

MODIFY gt_fieldcat FROM gs_fieldcat.

gs_fieldcat-fieldname = 'Z_TABLES'.

gs_fieldcat-hotspot = 'X'.

MODIFY gt_fieldcat FROM gs_fieldcat.

ENDLOOP.

ENDFORM. " fieldcat

&----


*& Form layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

**----


**

*form layout changing gs_layout.

*

*gs_layout-zebra = 'X'.

*gs_layout-sel_mode = 'A'.

*

*

*

*endform. " layout

&----


*& Form variant

&----


  • text

----


  • <--P_GS_variant text

  • <--P_ENDMODULE text

----


*form variant changing gs_variant

  • gs_variant-report = gv_repid.

*

*

*endform. " variant

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

TRANSLATE okcode TO UPPER CASE.

CASE okcode.

WHEN 'EXIT' OR 'BACK' OR 'CANCEL'.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Form hotspot_click

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM hotspot_click ."importing gs_row_id type lvc_s_row.

data : lv_prog type syrepid,

lv_tcode type tcode.

read table gt_tables into gs_tables index e_row_id-index.

if sy-subrc eq 0 and gs_col_id-fieldname = 'ZTABLES'.

move gs_tables-z_tables to lv_prog.

translate lv_prog to upper case.

select single tcode from tstc into lv_tcode where pgmna = lv_prog.

call transaction lv_tcode.

endif.

ENDFORM. " hotspot_click

thanks in advance..

pls