<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ALV Tree Double Click Functionality in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-double-click-functionality/m-p/4312962#M1028107</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In order to add additional buttons onto the ALVtree report the following sections of code need&lt;/P&gt;&lt;P&gt;implementing:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Creation of tree event reciever class&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Define class to handle user interaction other than via toolbar buttons. Insert at end of DATA declaration&lt;/P&gt;&lt;P&gt;section but before any ABAP processing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INCLUDE BCALV_TREE_EVENT_RECEIVER                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_tree_event_receiver DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS handle_node_ctmenu_request&lt;/P&gt;&lt;P&gt;      FOR EVENT node_context_menu_request OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;        IMPORTING node_key&lt;/P&gt;&lt;P&gt;                  menu.&lt;/P&gt;&lt;P&gt;    METHODS handle_node_ctmenu_selected&lt;/P&gt;&lt;P&gt;      FOR EVENT node_context_menu_selected OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;        IMPORTING node_key&lt;/P&gt;&lt;P&gt;                  fcode.&lt;/P&gt;&lt;P&gt;    METHODS handle_item_ctmenu_request&lt;/P&gt;&lt;P&gt;      FOR EVENT item_context_menu_request OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;        IMPORTING node_key&lt;/P&gt;&lt;P&gt;                  fieldname&lt;/P&gt;&lt;P&gt;                  menu.&lt;/P&gt;&lt;P&gt;    METHODS handle_item_ctmenu_selected&lt;/P&gt;&lt;P&gt;      FOR EVENT item_context_menu_selected OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;        IMPORTING node_key&lt;/P&gt;&lt;P&gt;                  fieldname&lt;/P&gt;&lt;P&gt;                  fcode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS handle_item_double_click&lt;/P&gt;&lt;P&gt;      FOR EVENT item_double_click OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;      IMPORTING node_key&lt;/P&gt;&lt;P&gt;                fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS handle_button_click&lt;/P&gt;&lt;P&gt;      FOR EVENT button_click OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;      IMPORTING node_key&lt;/P&gt;&lt;P&gt;                fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS handle_link_click&lt;/P&gt;&lt;P&gt;      FOR EVENT link_click OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;      IMPORTING node_key&lt;/P&gt;&lt;P&gt;                fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS handle_header_click&lt;/P&gt;&lt;P&gt;      FOR EVENT header_click OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;      IMPORTING fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_tree_event_receiver IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_tree_event_receiver IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_node_ctmenu_request.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  append own functions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL METHOD menu-&amp;gt;add_function&lt;/P&gt;&lt;P&gt;                EXPORTING fcode   = 'USER1'&lt;/P&gt;&lt;P&gt;                          text    = 'Usercmd 1'.            "#EC NOTEXT&lt;/P&gt;&lt;P&gt;    CALL METHOD menu-&amp;gt;add_function&lt;/P&gt;&lt;P&gt;                EXPORTING fcode   = 'USER2'&lt;/P&gt;&lt;P&gt;                          text    = 'Usercmd 2'.            "#EC NOTEXT&lt;/P&gt;&lt;P&gt;    CALL METHOD menu-&amp;gt;add_function&lt;/P&gt;&lt;P&gt;                EXPORTING fcode   = 'USER3'&lt;/P&gt;&lt;P&gt;                          text    = 'Usercmd 3'.            "#EC NOTEXT&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_node_ctmenu_selected.&lt;/P&gt;&lt;P&gt;    CASE fcode.&lt;/P&gt;&lt;P&gt;      WHEN 'USER1' OR 'USER2' OR 'USER3'.&lt;/P&gt;&lt;P&gt;        MESSAGE i000(0h) WITH 'Node-Context-Menu on Node ' node_key&lt;/P&gt;&lt;P&gt;                              'fcode : ' fcode.             "#EC NOTEXT&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_item_ctmenu_request .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  append own functions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL METHOD menu-&amp;gt;add_function&lt;/P&gt;&lt;P&gt;                EXPORTING fcode   = 'USER1'&lt;/P&gt;&lt;P&gt;                          text    = 'Usercmd 1'.&lt;/P&gt;&lt;P&gt;    CALL METHOD menu-&amp;gt;add_function&lt;/P&gt;&lt;P&gt;                EXPORTING fcode   = 'USER2'&lt;/P&gt;&lt;P&gt;                          text    = 'Usercmd 2'.&lt;/P&gt;&lt;P&gt;    CALL METHOD menu-&amp;gt;add_function&lt;/P&gt;&lt;P&gt;                EXPORTING fcode   = 'USER3'&lt;/P&gt;&lt;P&gt;                          text    = 'Usercmd 3'.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_item_ctmenu_selected.&lt;/P&gt;&lt;P&gt;    CASE fcode.&lt;/P&gt;&lt;P&gt;      WHEN 'USER1' OR 'USER2' OR 'USER3'.&lt;/P&gt;&lt;P&gt;        MESSAGE i000(0h) WITH 'Item-Context-Menu on Node ' node_key&lt;/P&gt;&lt;P&gt;                              'Fieldname : ' fieldname.     "#EC NOTEXT&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_item_double_click.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Processing for when user double clicks on ALVtree&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_button_click.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Processing when user clicks button&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_link_click.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;??&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_header_click.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Processing for when user clicks on ALVtree column headers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Code to activate User interaction events (i.e. double click)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Insert the following code into the PBO of the screen after the ALVtree has been created.&lt;/P&gt;&lt;P&gt;	i.e after 'CALL METHOD gd_tree-&amp;gt;set_table_for_first_display' has been executed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      REGISTER_EVENTS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;define the events which will be passed to the backend&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data: lt_events type cntl_simple_events,&lt;/P&gt;&lt;P&gt;        l_event type cntl_simple_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;define the events which will be passed to the backend&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_expand_no_children.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_checkbox_change.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_header_context_men_req.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_node_context_menu_req.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_item_context_menu_req.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_item_double_click.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_header_click.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_item_keypress.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method gd_tree-&amp;gt;set_registered_events&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      events = lt_events&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      cntl_error                = 1&lt;/P&gt;&lt;P&gt;      cntl_system_error         = 2&lt;/P&gt;&lt;P&gt;      illegal_event_combination = 3.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message x208(00) with 'ERROR'.                       "#EC NOTEXT&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set Handler&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data: l_event_receiver type ref to lcl_tree_event_receiver.&lt;/P&gt;&lt;P&gt;  create object l_event_receiver.&lt;/P&gt;&lt;P&gt;  set handler l_event_receiver-&amp;gt;handle_node_ctmenu_request&lt;/P&gt;&lt;P&gt;                                                        for gd_tree.&lt;/P&gt;&lt;P&gt;  set handler l_event_receiver-&amp;gt;handle_node_ctmenu_selected&lt;/P&gt;&lt;P&gt;                                                        for gd_tree.&lt;/P&gt;&lt;P&gt;  set handler l_event_receiver-&amp;gt;handle_item_ctmenu_request&lt;/P&gt;&lt;P&gt;                                                        for gd_tree.&lt;/P&gt;&lt;P&gt;  set handler l_event_receiver-&amp;gt;handle_item_ctmenu_selected&lt;/P&gt;&lt;P&gt;                                                        for gd_tree.&lt;/P&gt;&lt;P&gt;  set handler l_event_receiver-&amp;gt;handle_item_double_click&lt;/P&gt;&lt;P&gt;                                                        for gd_tree.&lt;/P&gt;&lt;P&gt;  set handler l_event_receiver-&amp;gt;handle_header_click&lt;/P&gt;&lt;P&gt;                                                        for gd_tree.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 31 Jul 2008 04:32:02 GMT</pubDate>
    <dc:creator>former_member206439</dc:creator>
    <dc:date>2008-07-31T04:32:02Z</dc:date>
    <item>
      <title>ALV Tree Double Click Functionality</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-double-click-functionality/m-p/4312959#M1028104</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm using an ALV tree grid to display a bunch of document headers and I'd like to add functionality when one such row is double clicked that a popup details window opens with additional data, preferably a grid like view of line items. Does anyone have input on how to use method handle_item_double_click to accommodate such a request?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Jul 2008 20:56:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-double-click-functionality/m-p/4312959#M1028104</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-30T20:56:59Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Tree Double Click Functionality</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-double-click-functionality/m-p/4312960#M1028105</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check with sap standard program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.BCALV_TREE_02&lt;/P&gt;&lt;P&gt;2.BCALV_TREE_EVENT_RECEIVER  &lt;/P&gt;&lt;P&gt;3.BCALV_TREE_EVENT_RECEIVER01&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks,&lt;/P&gt;&lt;P&gt;Sendil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Jul 2008 04:28:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-double-click-functionality/m-p/4312960#M1028105</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-31T04:28:10Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Tree Double Click Functionality</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-double-click-functionality/m-p/4312961#M1028106</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try the below example program in SE38.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BCALV_GRID_DND_TREE            ALV Grid: Drag and Drop with ALV Tree&lt;/P&gt;&lt;P&gt;BCALV_GRID_DND_TREE_SIMPLE     ALV GRID: Drag and drop with ALV tree (simple)&lt;/P&gt;&lt;P&gt;BCALV_TEST_COLUMN_TREE         Program BCALV_TEST_COLUMN_TREE&lt;/P&gt;&lt;P&gt;BCALV_TEST_SIMPLE_TREE         Program BCALV_TEST_SIMPLE_TREE&lt;/P&gt;&lt;P&gt;BCALV_TREE_01                  ALV Tree Control: Build Up the Hierarchy Tree&lt;/P&gt;&lt;P&gt;BCALV_TREE_02                  ALV Tree Control: Event Handling&lt;/P&gt;&lt;P&gt;BCALV_TREE_03                  ALV Tree Control: Use an Own Context Menu&lt;/P&gt;&lt;P&gt;BCALV_TREE_04                  ALV Tree Control: Add a Button to the Toolbar&lt;/P&gt;&lt;P&gt;BCALV_TREE_05                  ALV Tree Control: Add a Menu to the Toolbar&lt;/P&gt;&lt;P&gt;BCALV_TREE_06                  ALV tree control: Icon column and icon for nodes/it&lt;/P&gt;&lt;P&gt;BCALV_TREE_DEMO                Demo for ALV tree control&lt;/P&gt;&lt;P&gt;BCALV_TREE_DND                 ALV tree control: Drag &amp;amp; Drop within a hierarchy tr&lt;/P&gt;&lt;P&gt;BCALV_TREE_DND_MULTIPLE        ALV tree control: Drag &amp;amp; Drop within a hierarchy tr&lt;/P&gt;&lt;P&gt;BCALV_TREE_EVENT_RECEIVER      Include BCALV_TREE_EVENT_RECEIVER&lt;/P&gt;&lt;P&gt;BCALV_TREE_EVENT_RECEIVER01&lt;/P&gt;&lt;P&gt;BCALV_TREE_ITEMLAYOUT          ALV Tree: Change Item Layouts at Runtime&lt;/P&gt;&lt;P&gt;BCALV_TREE_MOVE_NODE_TEST      Demo for ALV tree control&lt;/P&gt;&lt;P&gt;BCALV_TREE_SIMPLE_DEMO         Program BCALV_TREE_SIMPLE_DEMO&lt;/P&gt;&lt;P&gt;BCALV_TREE_VERIFY              Verifier for ALV Tree and Simple ALV Tree&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Boobalan S&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Jul 2008 04:31:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-double-click-functionality/m-p/4312961#M1028106</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-31T04:31:07Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Tree Double Click Functionality</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-double-click-functionality/m-p/4312962#M1028107</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In order to add additional buttons onto the ALVtree report the following sections of code need&lt;/P&gt;&lt;P&gt;implementing:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Creation of tree event reciever class&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Define class to handle user interaction other than via toolbar buttons. Insert at end of DATA declaration&lt;/P&gt;&lt;P&gt;section but before any ABAP processing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INCLUDE BCALV_TREE_EVENT_RECEIVER                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_tree_event_receiver DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS handle_node_ctmenu_request&lt;/P&gt;&lt;P&gt;      FOR EVENT node_context_menu_request OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;        IMPORTING node_key&lt;/P&gt;&lt;P&gt;                  menu.&lt;/P&gt;&lt;P&gt;    METHODS handle_node_ctmenu_selected&lt;/P&gt;&lt;P&gt;      FOR EVENT node_context_menu_selected OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;        IMPORTING node_key&lt;/P&gt;&lt;P&gt;                  fcode.&lt;/P&gt;&lt;P&gt;    METHODS handle_item_ctmenu_request&lt;/P&gt;&lt;P&gt;      FOR EVENT item_context_menu_request OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;        IMPORTING node_key&lt;/P&gt;&lt;P&gt;                  fieldname&lt;/P&gt;&lt;P&gt;                  menu.&lt;/P&gt;&lt;P&gt;    METHODS handle_item_ctmenu_selected&lt;/P&gt;&lt;P&gt;      FOR EVENT item_context_menu_selected OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;        IMPORTING node_key&lt;/P&gt;&lt;P&gt;                  fieldname&lt;/P&gt;&lt;P&gt;                  fcode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS handle_item_double_click&lt;/P&gt;&lt;P&gt;      FOR EVENT item_double_click OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;      IMPORTING node_key&lt;/P&gt;&lt;P&gt;                fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS handle_button_click&lt;/P&gt;&lt;P&gt;      FOR EVENT button_click OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;      IMPORTING node_key&lt;/P&gt;&lt;P&gt;                fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS handle_link_click&lt;/P&gt;&lt;P&gt;      FOR EVENT link_click OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;      IMPORTING node_key&lt;/P&gt;&lt;P&gt;                fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS handle_header_click&lt;/P&gt;&lt;P&gt;      FOR EVENT header_click OF cl_gui_alv_tree&lt;/P&gt;&lt;P&gt;      IMPORTING fieldname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_tree_event_receiver IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_tree_event_receiver IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_node_ctmenu_request.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  append own functions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL METHOD menu-&amp;gt;add_function&lt;/P&gt;&lt;P&gt;                EXPORTING fcode   = 'USER1'&lt;/P&gt;&lt;P&gt;                          text    = 'Usercmd 1'.            "#EC NOTEXT&lt;/P&gt;&lt;P&gt;    CALL METHOD menu-&amp;gt;add_function&lt;/P&gt;&lt;P&gt;                EXPORTING fcode   = 'USER2'&lt;/P&gt;&lt;P&gt;                          text    = 'Usercmd 2'.            "#EC NOTEXT&lt;/P&gt;&lt;P&gt;    CALL METHOD menu-&amp;gt;add_function&lt;/P&gt;&lt;P&gt;                EXPORTING fcode   = 'USER3'&lt;/P&gt;&lt;P&gt;                          text    = 'Usercmd 3'.            "#EC NOTEXT&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_node_ctmenu_selected.&lt;/P&gt;&lt;P&gt;    CASE fcode.&lt;/P&gt;&lt;P&gt;      WHEN 'USER1' OR 'USER2' OR 'USER3'.&lt;/P&gt;&lt;P&gt;        MESSAGE i000(0h) WITH 'Node-Context-Menu on Node ' node_key&lt;/P&gt;&lt;P&gt;                              'fcode : ' fcode.             "#EC NOTEXT&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_item_ctmenu_request .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  append own functions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL METHOD menu-&amp;gt;add_function&lt;/P&gt;&lt;P&gt;                EXPORTING fcode   = 'USER1'&lt;/P&gt;&lt;P&gt;                          text    = 'Usercmd 1'.&lt;/P&gt;&lt;P&gt;    CALL METHOD menu-&amp;gt;add_function&lt;/P&gt;&lt;P&gt;                EXPORTING fcode   = 'USER2'&lt;/P&gt;&lt;P&gt;                          text    = 'Usercmd 2'.&lt;/P&gt;&lt;P&gt;    CALL METHOD menu-&amp;gt;add_function&lt;/P&gt;&lt;P&gt;                EXPORTING fcode   = 'USER3'&lt;/P&gt;&lt;P&gt;                          text    = 'Usercmd 3'.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_item_ctmenu_selected.&lt;/P&gt;&lt;P&gt;    CASE fcode.&lt;/P&gt;&lt;P&gt;      WHEN 'USER1' OR 'USER2' OR 'USER3'.&lt;/P&gt;&lt;P&gt;        MESSAGE i000(0h) WITH 'Item-Context-Menu on Node ' node_key&lt;/P&gt;&lt;P&gt;                              'Fieldname : ' fieldname.     "#EC NOTEXT&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_item_double_click.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Processing for when user double clicks on ALVtree&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_button_click.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Processing when user clicks button&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_link_click.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;??&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD handle_header_click.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Processing for when user clicks on ALVtree column headers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Code to activate User interaction events (i.e. double click)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Insert the following code into the PBO of the screen after the ALVtree has been created.&lt;/P&gt;&lt;P&gt;	i.e after 'CALL METHOD gd_tree-&amp;gt;set_table_for_first_display' has been executed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      REGISTER_EVENTS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;define the events which will be passed to the backend&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data: lt_events type cntl_simple_events,&lt;/P&gt;&lt;P&gt;        l_event type cntl_simple_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;define the events which will be passed to the backend&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_expand_no_children.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_checkbox_change.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_header_context_men_req.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_node_context_menu_req.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_item_context_menu_req.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_item_double_click.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_header_click.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;  l_event-eventid = cl_gui_column_tree=&amp;gt;eventid_item_keypress.&lt;/P&gt;&lt;P&gt;  append l_event to lt_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method gd_tree-&amp;gt;set_registered_events&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      events = lt_events&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      cntl_error                = 1&lt;/P&gt;&lt;P&gt;      cntl_system_error         = 2&lt;/P&gt;&lt;P&gt;      illegal_event_combination = 3.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message x208(00) with 'ERROR'.                       "#EC NOTEXT&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set Handler&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data: l_event_receiver type ref to lcl_tree_event_receiver.&lt;/P&gt;&lt;P&gt;  create object l_event_receiver.&lt;/P&gt;&lt;P&gt;  set handler l_event_receiver-&amp;gt;handle_node_ctmenu_request&lt;/P&gt;&lt;P&gt;                                                        for gd_tree.&lt;/P&gt;&lt;P&gt;  set handler l_event_receiver-&amp;gt;handle_node_ctmenu_selected&lt;/P&gt;&lt;P&gt;                                                        for gd_tree.&lt;/P&gt;&lt;P&gt;  set handler l_event_receiver-&amp;gt;handle_item_ctmenu_request&lt;/P&gt;&lt;P&gt;                                                        for gd_tree.&lt;/P&gt;&lt;P&gt;  set handler l_event_receiver-&amp;gt;handle_item_ctmenu_selected&lt;/P&gt;&lt;P&gt;                                                        for gd_tree.&lt;/P&gt;&lt;P&gt;  set handler l_event_receiver-&amp;gt;handle_item_double_click&lt;/P&gt;&lt;P&gt;                                                        for gd_tree.&lt;/P&gt;&lt;P&gt;  set handler l_event_receiver-&amp;gt;handle_header_click&lt;/P&gt;&lt;P&gt;                                                        for gd_tree.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Jul 2008 04:32:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-double-click-functionality/m-p/4312962#M1028107</guid>
      <dc:creator>former_member206439</dc:creator>
      <dc:date>2008-07-31T04:32:02Z</dc:date>
    </item>
  </channel>
</rss>

