04-20-2007 3:21 PM
Hi
I display an ALV by Reuse_ALV_display_grid. Now I need to handle double click event on one column.
Pls Provide some code.
04-20-2007 3:25 PM
1. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
I_CALLBACK_USER_COMMAND = <b>'USER_COMMAND'</b>
2. FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM
P_SELFLD TYPE SLIS_SELFIELD.
DATA : L_REP_MODE. "report mode
CASE P_UCOMM.
<b>*when double clicked on ALV grid , report id is passed to transaction
WHEN '&IC1'. "Double click</b> READ TABLE IT_RAMS_SCR_FLDS INDEX P_SELFLD-TABINDEX.
ENDFORM.
04-20-2007 3:33 PM
Hi Praveen,
<b>Just copy paste this code......... to get your desired functionality.
This program definitely help you to solve ur problem.</b>
class lcl_event_receiver definition deferred.
DATA: OK_CODE LIKE SY-UCOMM,
code like ok_code,
G_CONTAINER(10),
GRID1 TYPE REF TO CL_GUI_ALV_GRID,
G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
data g_control type ref to CL_GUI_CONTROL .
DATA:
FS_LAYOUT TYPE LVC_S_LAYO.
DATA:
T_SFLIGHT LIKE STANDARD TABLE OF SFLIGHT,
event_receiver type ref to lcl_event_receiver.
DATA:
T_SBOOK LIKE STANDARD TABLE OF SBOOK.
DATA:
INDEX TYPE I VALUE 1.
***************************************************************
LOCAL CLASSES: Definition
****************************************************************
*===============================================================
class lcl_event_receiver: local class to handle event DOUBLE_CLICK
class lcl_event_receiver definition.
public section.
methods:
handle_double_click
for event double_click of cl_gui_alv_grid
importing e_row e_column,
change_fcode
for event before_user_command of cl_gui_alv_grid
importing e_ucomm.
endclass.
class lcl_event_receiver implementation.
method handle_double_click.
data: ls_sflight like line of t_sflight.
CLEAR LS_SFLIGHT.
read table t_sflight index e_row-index into ls_sflight.
CLEAR E_ROW.
perform select_table_sbook using ls_sflight
changing t_sbook.
call screen 101 STARTING AT 10 5.
endmethod. "handle_double_click
method change_fcode.
CALL METHOD GRID1->set_user_command
exporting
I_UCOMM = '&SORT_ASC'.
call screen 101 STARTING AT 10 5.
endmethod.
endclass.
start-of-selection.
----
MAIN *
----
SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF TABLE T_SFLIGHT.
CALL SCREEN 100.
----
MODULE PBO OUTPUT *
----
MODULE PBO OUTPUT.
SET PF-STATUS 'MAIN100'.
G_CONTAINER = 'XYZ'.
IF G_CUSTOM_CONTAINER IS INITIAL.
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = G_CONTAINER.
CREATE OBJECT GRID1
EXPORTING I_PARENT = G_CUSTOM_CONTAINER.
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING I_STRUCTURE_NAME = 'SFLIGHT'
IS_LAYOUT = FS_LAYOUT
CHANGING IT_OUTTAB = T_SFLIGHT
.
ENDIF.
create object event_receiver.
set handler event_receiver->handle_double_click for grid1.
ENDMODULE.
----
MODULE PAI INPUT *
----
MODULE PAI INPUT.
CODE = OK_CODE.
CLEAR OK_CODE.
CASE CODE.
WHEN 'EXIT'.
leave program.
WHEN OTHERS.
do nothing
ENDCASE.
ENDMODULE.
&----
*& Module STATUS_0101 OUTPUT
&----
text
----
module STATUS_0101 output.
SET PF-STATUS 'MAIN100'.
SET TITLEBAR 'xxx'.
G_CONTAINER = 'NEW'.
IF INDEX EQ 1.
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING CONTAINER_NAME = G_CONTAINER.
CREATE OBJECT GRID1
EXPORTING I_PARENT = G_CUSTOM_CONTAINER.
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING I_STRUCTURE_NAME = 'SBOOK'
CHANGING IT_OUTTAB = T_SBOOK
.
ENDIF.
ADD 1 TO INDEX.
CALL METHOD GRID1->refresh_table_display.
endmodule. " STATUS_0101 OUTPUT
&----
*& Module USER_COMMAND_0101 INPUT
&----
text
----
module USER_COMMAND_0101 input.
CODE = OK_CODE.
case code.
when 'EXIT'.
leave to screen 0.
endcase.
clear ok_code.
endmodule. " USER_COMMAND_0101 INPUT
&----
*& Form select_table_sbook
&----
text
----
-->P_LS_SFLIGHT text
<--P_GT_SBOOK text
----
form select_table_sbook using p_ls_sflight LIKE SFLIGHT
changing p_gt_sbook.
CLEAR T_SBOOK[].
SELECT *
FROM SBOOK
INTO CORRESPONDING FIELDS OF TABLE T_SBOOK
WHERE CARRID EQ P_LS_SFLIGHT-CARRID
AND CONNID EQ P_LS_SFLIGHT-CONNID
AND FLDATE EQ P_LS_SFLIGHT-FLDATE.
endform. " select_table_sbook
<b>Reward all helpful answers.</b>
Regards,
V.Raghavender.