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