06-03-2014 4:09 PM
Hello experts,
I made an alv list using the function module
I now want to be able to double click on a field to trigger an event. Any example ? To handle the events.
Thanks a lot in advance.
Shubhendu
06-04-2014 8:00 AM
Hi Shubhendu,
Its just like creating hotspot for normal reuse_alv_grid_display.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND'
is_layout = ls_layout
it_fieldcat = lt_fieldcat
it_sort = lt_sort
i_tabname_header = c_vbak
i_tabname_item = c_vbap
is_keyinfo = ls_keyinfo
i_save = 'A'
TABLES
t_outtab_header = gt_vbak
t_outtab_item = gt_vbap
EXCEPTIONS
program_error = 1
OTHERS = 2.
For double click, the function code is &ICI.
FORM user_command USING i_ucomm TYPE sy-ucomm
is_selfield TYPE slis_selfield.
DATA ls_vbak TYPE ty_vbak.
CASE i_ucomm.
WHEN '&IC1'. " Pick
CASE is_selfield-tabname. "depending on which table (header or item) you want it to get triggered
WHEN c_vbap.
WHEN c_vbak.
READ TABLE gt_vbak INDEX is_selfield-tabindex INTO ls_vbak.
IF sy-subrc EQ 0.
* Sales order number
SET PARAMETER ID 'AUN' FIELD ls_vbak-vbeln.
* Display Sales Order
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDCASE.
ENDFORM.
In case you want it as hotspot, just set hotspot = 'X' in the fieldcatalog for that field.
ls_fieldcat-hotspot = 'X', function code is the same.
06-04-2014 8:00 AM
Hi Shubhendu,
Its just like creating hotspot for normal reuse_alv_grid_display.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND'
is_layout = ls_layout
it_fieldcat = lt_fieldcat
it_sort = lt_sort
i_tabname_header = c_vbak
i_tabname_item = c_vbap
is_keyinfo = ls_keyinfo
i_save = 'A'
TABLES
t_outtab_header = gt_vbak
t_outtab_item = gt_vbap
EXCEPTIONS
program_error = 1
OTHERS = 2.
For double click, the function code is &ICI.
FORM user_command USING i_ucomm TYPE sy-ucomm
is_selfield TYPE slis_selfield.
DATA ls_vbak TYPE ty_vbak.
CASE i_ucomm.
WHEN '&IC1'. " Pick
CASE is_selfield-tabname. "depending on which table (header or item) you want it to get triggered
WHEN c_vbap.
WHEN c_vbak.
READ TABLE gt_vbak INDEX is_selfield-tabindex INTO ls_vbak.
IF sy-subrc EQ 0.
* Sales order number
SET PARAMETER ID 'AUN' FIELD ls_vbak-vbeln.
* Display Sales Order
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDCASE.
ENDFORM.
In case you want it as hotspot, just set hotspot = 'X' in the fieldcatalog for that field.
ls_fieldcat-hotspot = 'X', function code is the same.