2007 Mar 15 9:17 AM
Hi All,
I displayed data in Grid by using ALV. My requirement is when i double click on any column then i have to call other transaction. How to do this ? Pls help me.
Best Regards,
praveena.
2007 Mar 15 9:33 AM
Hello,
Check this code
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'. "doubleclick
CHECK RS_SELFIELD-FIELDNAME = 'BANFN'.
READ TABLE G_T_DETAIL INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'BAN' FIELD G_T_DETAIL-BANFN.
CALL TRANSACTION 'ME53N' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
If usefulreward.
Vasanth
Hello,
Check this code
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'. "doubleclick
CHECK RS_SELFIELD-FIELDNAME = 'BANFN'.
READ TABLE G_T_DETAIL INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'BAN' FIELD G_T_DETAIL-BANFN.
CALL TRANSACTION 'ME53N' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
If usefulreward.
Vasanth
2007 Mar 15 9:21 AM
If you have used OO do the following: -
&----
&----
*& Class CL_DOUBLE_CLICK
&----
Class to handle double click event
----
CLASS cl_double_click DEFINITION.
PUBLIC SECTION.
Method executed when the double click even is trigeered
METHODS on_dblclick FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row.
ENDCLASS. "cl_double_click
&----
*& Class (Implementation) CL_DOUBLE_CLICK
&----
Class to handle double click event
----
CLASS cl_double_click IMPLEMENTATION.
Method executed when the double click event is trigeered
METHOD on_dblclick.
Get the corresponding line from table t_messages where the
double click function has been performed
CALL METHOD o_sap_grid_rental->get_selected_cells
IMPORTING
et_cell = t_cell.
READ TABLE t_cell INTO st_cell INDEX 1.
**CALL YOUR TRANSACTION HERE**
ENDMETHOD. "on_dblclick
After you call the ALV create method do this
SET HANDLER cl_dblclick->on_dblclick FOR o_sap_grid_rental.
2007 Mar 15 9:33 AM
Hi
Use At line-selection.event
then CALL TRANSACTION <>.
Thanks.....
2007 Mar 15 9:33 AM
Hello,
Check this code
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'. "doubleclick
CHECK RS_SELFIELD-FIELDNAME = 'BANFN'.
READ TABLE G_T_DETAIL INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'BAN' FIELD G_T_DETAIL-BANFN.
CALL TRANSACTION 'ME53N' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
If usefulreward.
Vasanth
2007 Mar 15 9:49 AM
hi,
this example will help u........
********************************************************************************************
********************************************************************************************
<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:
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'.
" CALL TRANSACTION'............<----
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</b>
********************************************************************************************
Regards,
Naresh.
2007 Mar 15 9:54 AM
Hi Praveena,
Here is the solution that you looking for :
Use This method to get your deriserd output.
<b>
class lcl_event_receiver implementation.
method handle_double_click.
call transaction 'SE11'.
endmethod. "handle_double_click
endclass.</b>
I will send you full program,If you require.
Hope the problem is solved..........
Reward,if helps.
Regards,
V.Raghavender.
2007 Mar 15 10:01 AM
Hi Raghavender,
Pls send me the whole program.
Thanks & Regards,
praveena.
2007 Mar 15 10:40 AM
Hi praveena,
This is the sample coding for your requirement in alv grid report.
Pls go through it that.
REPORT YMS_ALVINTER.
&----
*& tables declaration
&----
TABLES: VBRK,VBRP.
&----
*& type-pools declaration
&----
TYPE-POOLS: SLIS.
&----
*& data declaration
&----
DATA: G_REPID TYPE SY-REPID.
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "mara
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
WA_EVENT TYPE SLIS_ALV_EVENT,
T_EVENT TYPE SLIS_T_EVENT.
DATA: V_VBELN LIKE VBRK-VBELN,
V_MATNR LIKE VBRP-MATNR.
DATA: BEGIN OF IT_VBRK OCCURS 0,
VBELN LIKE VBRK-VBELN,
WAERK LIKE VBRK-WAERK,
VKORG LIKE VBRK-VKORG,
FKDAT LIKE VBRK-FKDAT,
BUKRS LIKE VBRK-BUKRS,
NETWR LIKE VBRK-NETWR,
END OF IT_VBRK.
DATA: BEGIN OF IT_VBRP OCCURS 0,
VBELN LIKE VBRP-VBELN,
POSNR LIKE VBRP-POSNR,
FKIMG LIKE VBRP-FKIMG,
VRKME LIKE VBRP-VRKME,
NETWR LIKE VBRP-NETWR,
MATNR LIKE VBRP-MATNR,
ARKTX LIKE VBRP-ARKTX,
END OF IT_VBRP.
&----
*& selection screen
&----
SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_VBELN FOR VBRK-VBELN,
S_FKDAT FOR VBRK-FKDAT,
S_MATNR FOR VBRP-MATNR.
SELECTION-SCREEN END OF BLOCK B.
**INITIALIZATION.
INITIALIZATION.
G_REPID = SY-REPID.
S_FKDAT-LOW = SY-DATUM - 200.
S_FKDAT-HIGH = SY-DATUM.
APPEND S_FKDAT.
***AT SELECTION-SCREEN.
AT SELECTION-SCREEN.
IF NOT S_VBELN IS INITIAL.
SELECT SINGLE VBELN FROM VBRK
INTO V_VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E001(ZZ2).
ENDIF.
ENDIF.
IF NOT S_MATNR IS INITIAL.
SELECT SINGLE MATNR FROM MARA
INTO V_MATNR
WHERE MATNR IN S_MATNR.
IF SY-SUBRC <> 0.
MESSAGE E001(ZZ2).
ENDIF.
ENDIF.
***START-OF-SELECTION.
START-OF-SELECTION.
PERFORM GET_DATA_VBRK.
&----
*& Form GET_DATA_VBRK
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DATA_VBRK .
SELECT VBELN
WAERK
VKORG
FKDAT
BUKRS
NETWR
INTO TABLE IT_VBRK
FROM VBRK
WHERE VBELN IN S_VBELN
AND FKDAT IN S_FKDAT.
ENDFORM. " GET_DATA_VBRK
&----
*& Form GET_DATA_VBRP
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DATA_VBRP .
SELECT VBELN
POSNR
FKIMG
VRKME
NETWR
MATNR
ARKTX
FROM VBRP
INTO TABLE IT_VBRP
WHERE VBELN = IT_VBRK-VBELN.
ENDFORM. " GET_DATA_VBRP
***END-OF-SELECTION.
END-OF-SELECTION.
PERFORM EVENT_LIST.
PERFORM GET_FIELD_CATALOG.
PERFORM LIST_DISP .
&----
*& Form list_disp
&----
text
----
FORM LIST_DISP .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = 'POPUP'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBRK
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " LIST_DISP
&----
*& Form GET_FIELD_CATALOG
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_FIELD_CATALOG .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = G_REPID
I_INTERNAL_TABNAME = 'IT_VBRK'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = G_REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = IT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " GET_FIELD_CATALOG
&----
*& Form event_list
&----
text
----
--> p1 text
<-- p2 text
----
FORM EVENT_LIST .
CLEAR WA_EVENT.
WA_EVENT-NAME = 'USER_COMMAND'.
WA_EVENT-FORM = 'USER_COMMAND'.
APPEND WA_EVENT TO T_EVENT.
CLEAR WA_EVENT.
ENDFORM. " event_list
&----
*& Form user_command
&----
text
----
-->R_UCOMM text
-->RS_SELFIELDtext
----
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_VBRK INDEX RS_SELFIELD-TABINDEX.
PERFORM GET_DATA_VBRP.
PERFORM BUILD_FIELDCATALOG_VBRP .
PERFORM DISPLAY_ALV_VBRP.
ENDCASE.
ENDFORM. "user_command
&----
*& Form BUILD_FIELDCATALOG_VBRP
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_FIELDCATALOG_VBRP .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = G_REPID
I_INTERNAL_TABNAME = 'IT_VBRP'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = G_REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = IT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " BUILD_FIELDCATALOG_VBRP
&----
*& Form DISPLAY_ALV_VBRP
&----
text
----
--> p1 text
<-- p2 text
----
FORM DISPLAY_ALV_VBRP .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBRP
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISPLAY_ALV_VBRP
Thanks,
Shankar
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |