07-31-2008 12:39 PM
Hi,
I am using the Fn module 'ZALV_FULL_DISP_W_DCLK_AND_HDR' to create an ALV report.
Can you please tell me how to execute the double click functionality in it?
Thanks,
Mayank.
07-31-2008 12:45 PM
07-31-2008 12:47 PM
Sorry to miss some code from the bottom
data : GT_EVENTS TYPE SLIS_T_EVENT.
constants : C_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
get event
PERFORM BUILD_EVENT_TOPOFPAGE USING GT_EVENTS[].
display alv data
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_xxxxx
IT_FIELDCAT = GT_xxxx
IT_EVENTS = GT_EVENTS[]
TABLES
T_OUTTAB = T_xxxx
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
get event perform
FORM BUILD_EVENT_TOPOFPAGE USING LT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = LT_EVENTS.
DOUBLE CLICK EVENT
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE C_USER_COMMAND TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.
ENDFORM. " BUILD_EVENT_TOPOFPAGE
define user_command ( perform user_command -> x )
only form user_command ........ endform -> o )
FORM USER_COMMAND USING L_UCOMM LIKE SY-UCOMM
LS_SELFIELD TYPE SLIS_SELFIELD.
CASE L_UCOMM.
WHEN '&IC1'. "f2code
READ TABLE T_xxxxx INDEX LS_SELFIELD-TABINDEX.
CASE LS_SELFIELD-SEL_TAB_FIELD. "select Column
WHEN 'T_xxx-xxx'. " double click column
WHEN 'T_xxxx-xxxx'. " double click column
ENDCASE.
ENDCASE.
ENDFORM. " USER_COMMAND
Thanks
Sudharshan
07-31-2008 12:45 PM
Hi Mayank
Check this for Double Click usage in ALV
data : GT_EVENTS TYPE SLIS_T_EVENT.
constants : C_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
get event
PERFORM BUILD_EVENT_TOPOFPAGE USING GT_EVENTS[].
display alv data
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = W_xxxxx
IT_FIELDCAT = GT_xxxx
IT_EVENTS = GT_EVENTS[]
TABLES
T_OUTTAB = T_xxxx
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
get event perform
FORM BUILD_EVENT_TOPOFPAGE USING LT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = LT_EVENTS.
DOUBLE CLICK EVENT
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE C_USER_COMMAND TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.
ENDFORM. " BUILD_EVENT_TOPOFPAGE
Thanks
Sudharshan
07-31-2008 12:50 PM
with the help of HOTSPOT in fieldcatalog and with the help of event USER_COMMAND event we can make that possible.
REPORT ztest_alv.
TYPE-POOLS:slis.
DATA:it_fieldcat TYPE slis_t_fieldcat_alv,
wa_field LIKE LINE OF it_fieldcat.
DATA: BEGIN OF it_likp OCCURS 0,
vbeln TYPE likp-vbeln,
END OF it_likp.
DATA: layout TYPE slis_layout_alv.
DATA: it_excluding TYPE slis_t_extab .
wa_field-fieldname = 'VBELN'.
wa_field-tabname = 'IT_LIKP'.
wa_field-hotspot = 'X'.
wa_field-outputlen = 10.
wa_field-no_zero = 'X'.
wa_field-seltext_l = 'Sales'.
APPEND wa_field TO it_fieldcat.
SELECT vbeln FROM likp
UP TO 10 ROWS
INTO TABLE it_likp.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = layout
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = it_fieldcat
TABLES
t_outtab = it_likp
EXCEPTIONS
program_error = 1.
*&---------------------------------------------------------------------*
*& Form user_Command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->UCOMM text
* -->SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING ucomm TYPE sy-ucomm
selfield TYPE slis_selfield.
CASE ucomm.
WHEN '&IC1'.
if selfiled-fieldname = 'VBELN'.
SET PARAMETER ID 'VL' FIELD selfield-value.
CALL TRANSACTION 'VL02N' AND SKIP FIRST SCREEN.
endif.
ENDCASE.
ENDFORM. "user_Command
07-31-2008 12:51 PM
07-31-2008 12:51 PM
07-31-2008 1:04 PM
hi
refer to following link
http://www.sapfans.com/forums/viewtopic.php?t=11601
http://www.sapfans.com/forums/viewtopic.php?t=23010
Cheers
Snehi
07-31-2008 2:14 PM
Hi,
It is only possible by going for oop's ALV conept.
Regards,
Ram.
07-31-2008 2:16 PM
check the below link for the sample program.
saptechnical.com/Tutorials/ALV/Interactive/oops.htm
Regards,
Ram.