Application Development 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: 

Create hotspot using REUSE_ALV_HIERSEQ_LIST_DISPLAY

Former Member
0 Kudos

Hello experts,

I made an alv list using the function module

REUSE_ALV_HIERSEQ_LIST_DISPLAY


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

1 ACCEPTED SOLUTION

former_member184569
Active Contributor
0 Kudos

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.

1 REPLY 1

former_member184569
Active Contributor
0 Kudos

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.