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

doubt in interactive alv

Former Member
0 Likes
1,166

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,139

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

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.

7 REPLIES 7
Read only

Former Member
0 Likes
1,139

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.

Read only

Former Member
0 Likes
1,139

Hi

Use At line-selection.event

then CALL TRANSACTION <>.

Thanks.....

Read only

Former Member
0 Likes
1,140

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

Read only

Former Member
0 Likes
1,139

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.

Read only

Former Member
0 Likes
1,139

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.

Read only

0 Likes
1,139

Hi Raghavender,

Pls send me the whole program.

Thanks & Regards,

praveena.

Read only

p291102
Active Contributor
0 Likes
1,139

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