<?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: Tree control with 2 columns in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/tree-control-with-2-columns/m-p/4822600#M1128540</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;Please check this code as a reference.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS cl_gui_column_tree DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;CLASS cl_gui_cfw DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA tree1  TYPE REF TO cl_gui_alv_tree_simple.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCLUDE &amp;lt;icon&amp;gt;.&lt;/P&gt;&lt;P&gt;INCLUDE bcalv_simple_event_receiver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gt_sflight      TYPE sflight occurs 0,&lt;/P&gt;&lt;P&gt;      gt_fieldcatalog TYPE lvc_t_fcat,         " Field Catalog&lt;/P&gt;&lt;P&gt;      gt_sort         TYPE lvc_t_sort,         " Sorting Table&lt;/P&gt;&lt;P&gt;      ok_code         LIKE sy-ucomm.           " OK-Code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL SCREEN 100.&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;      Form  BUILD_FIELDCATALOG&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; This subroutine is used to build the field catalog for the ALV list&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;FORM build_fieldcatalog.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_structure_name = 'SFLIGHT'&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      ct_fieldcat      = gt_fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;change fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: ls_fieldcatalog TYPE lvc_s_fcat.&lt;/P&gt;&lt;P&gt;  LOOP AT gt_fieldcatalog INTO ls_fieldcatalog.&lt;/P&gt;&lt;P&gt;    CASE ls_fieldcatalog-fieldname.&lt;/P&gt;&lt;P&gt;      WHEN 'CARRID' OR 'CONNID' OR 'FLDATE'.&lt;/P&gt;&lt;P&gt;        ls_fieldcatalog-no_out = 'X'.&lt;/P&gt;&lt;P&gt;        ls_fieldcatalog-key    = ''.&lt;/P&gt;&lt;P&gt;      WHEN 'PRICE' OR 'SEATSOCC' OR 'SEATSMAX' OR 'PAYMENTSUM'.&lt;/P&gt;&lt;P&gt;        ls_fieldcatalog-do_sum = 'X'.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;    MODIFY gt_fieldcatalog FROM ls_fieldcatalog.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " BUILD_FIELDCATALOG&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;      Form  BUILD_OUTTAB&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Retrieving the data from the table and filling it in the output table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;of the ALV list&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;FORM build_outtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT carrid connid FROM sflight INTO TABLE gt_sflight.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " BUILD_OUTTAB&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;      Form  BUILD_SORT_TABLE&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This subroutine is used to build the sort table or the sort criteria&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;&lt;/P&gt;&lt;P&gt;FORM build_sort_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA ls_sort_wa TYPE lvc_s_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create sort-table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_sort_wa-spos = 1.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-fieldname = 'CARRID'.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-up = 'X'.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-subtot = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND ls_sort_wa TO gt_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_sort_wa-spos = 2.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-fieldname = 'CONNID'.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-up = 'X'.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-subtot = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND ls_sort_wa TO gt_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " BUILD_SORT_TABLE&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;      Module  PBO  OUTPUT&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This subroutine is used to build the ALV Tree&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;MODULE pbo OUTPUT.&lt;/P&gt;&lt;P&gt;  IF tree1 IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM init_tree.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'ZSTATUS'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                             " PBO  OUTPUT&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;      Module  PAI  INPUT&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This subroutine is used to handle the navigation on the screen&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;MODULE pai INPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE ok_code.&lt;/P&gt;&lt;P&gt;    WHEN 'EXIT' OR 'BACK' OR 'CANC'.&lt;/P&gt;&lt;P&gt;      PERFORM exit_program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;P&gt;      CALL METHOD cl_gui_cfw=&amp;gt;dispatch.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;  CLEAR ok_code.&lt;/P&gt;&lt;P&gt;ENDMODULE.                             " PAI  INPUT&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;      Form  exit_program&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      free object and leave program&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;FORM exit_program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD tree1-&amp;gt;free.&lt;/P&gt;&lt;P&gt;  LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " exit_program&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;      Form  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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Handling the events in the ALV Tree control in backend&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;FORM register_events.&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_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_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_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_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 tree1-&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;&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;on_add_hierarchy_node&lt;/P&gt;&lt;P&gt;                                                        FOR tree1.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " register_events&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;      Form  build_header&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      build table for header&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;FORM build_comment USING&lt;/P&gt;&lt;P&gt;      pt_list_commentary TYPE slis_t_listheader&lt;/P&gt;&lt;P&gt;      p_logo             TYPE sdydo_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ls_line TYPE slis_listheader.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LIST HEADING LINE: TYPE H&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ls_line.&lt;/P&gt;&lt;P&gt;  ls_line-typ  = 'H'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LS_LINE-KEY:  NOT USED FOR THIS TYPE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_line-info = 'ALV TREE DEMO for SAPTechnical.COM'.&lt;/P&gt;&lt;P&gt;  APPEND ls_line TO pt_list_commentary.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_logo = 'ENJOYSAP_LOGO'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "build_comment&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;      Form  init_tree&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Building the ALV-Tree for the first time display&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;&lt;/P&gt;&lt;P&gt;FORM init_tree.&lt;/P&gt;&lt;P&gt;  PERFORM build_fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM build_outtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM build_sort_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create container for alv-tree&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: l_tree_container_name(30) TYPE c,&lt;/P&gt;&lt;P&gt;        l_custom_container TYPE REF TO cl_gui_custom_container.&lt;/P&gt;&lt;P&gt;  l_tree_container_name = 'TREE1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT l_custom_container&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;            container_name = l_tree_container_name&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;            create_error                = 3&lt;/P&gt;&lt;P&gt;            lifetime_error              = 4&lt;/P&gt;&lt;P&gt;            lifetime_dynpro_dynpro_link = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create tree control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE OBJECT tree1&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;        i_parent              = l_custom_container&lt;/P&gt;&lt;P&gt;        i_node_selection_mode =&lt;/P&gt;&lt;P&gt;                              cl_gui_column_tree=&amp;gt;node_sel_mode_multiple&lt;/P&gt;&lt;P&gt;        i_item_selection      = 'X'&lt;/P&gt;&lt;P&gt;        i_no_html_header      = ''&lt;/P&gt;&lt;P&gt;        i_no_toolbar          = ''&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;        create_error                 = 3&lt;/P&gt;&lt;P&gt;        lifetime_error               = 4&lt;/P&gt;&lt;P&gt;        illegal_node_selection_mode  = 5&lt;/P&gt;&lt;P&gt;        failed                       = 6&lt;/P&gt;&lt;P&gt;        illegal_column_name          = 7.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create info-table for html-header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: lt_list_commentary TYPE slis_t_listheader,&lt;/P&gt;&lt;P&gt;        l_logo             TYPE sdydo_value.&lt;/P&gt;&lt;P&gt;  PERFORM build_comment USING&lt;/P&gt;&lt;P&gt;                 lt_list_commentary&lt;/P&gt;&lt;P&gt;                 l_logo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;repid for saving variants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: ls_variant TYPE disvariant.&lt;/P&gt;&lt;P&gt;  ls_variant-report = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;register events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM register_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create hierarchy&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD tree1-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_list_commentary = lt_list_commentary&lt;/P&gt;&lt;P&gt;      i_logo             = l_logo&lt;/P&gt;&lt;P&gt;      i_background_id    = 'ALV_BACKGROUND'&lt;/P&gt;&lt;P&gt;      i_save             = 'A'&lt;/P&gt;&lt;P&gt;      is_variant         = ls_variant&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      it_sort            = gt_sort&lt;/P&gt;&lt;P&gt;      it_outtab          = gt_sflight[]&lt;/P&gt;&lt;P&gt;      it_fieldcatalog    = gt_fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;expand first level&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD tree1-&amp;gt;expand_tree&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_level = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;optimize column-width&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD tree1-&amp;gt;column_optimize&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_start_column = tree1-&amp;gt;c_hierarchy_column_name&lt;/P&gt;&lt;P&gt;      i_end_column   = tree1-&amp;gt;c_hierarchy_column_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " init_tree&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 25 Nov 2008 07:21:10 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-11-25T07:21:10Z</dc:date>
    <item>
      <title>Tree control with 2 columns</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tree-control-with-2-columns/m-p/4822598#M1128538</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Do someone know a tree control example ? I know the test program SAPCOLUMN_TREE_CONTROL_DEMO&lt;/P&gt;&lt;P&gt;but its a little bit hard to understand as I am beginner in abap objects.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Nov 2008 13:38:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tree-control-with-2-columns/m-p/4822598#M1128538</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-11-24T13:38:48Z</dc:date>
    </item>
    <item>
      <title>Re: Tree control with 2 columns</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tree-control-with-2-columns/m-p/4822599#M1128539</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Muhammet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You may want to start with a more simple tree control like the ALV tree control. If so then you may have a look at my sample report(s) &lt;STRONG&gt;ZUS_SDN_ALV_TREE_DEMO(_1)&lt;/STRONG&gt; in thread&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN __jive_macro_name="thread" id="1050473"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN __jive_macro_name="thread" id="1074082"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As soon as you are familiar with the ALV tree then you can proceed to tackle the more complex (and flexible) Column (and List) tree controls.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;  Uwe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Nov 2008 13:56:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tree-control-with-2-columns/m-p/4822599#M1128539</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2008-11-24T13:56:57Z</dc:date>
    </item>
    <item>
      <title>Re: Tree control with 2 columns</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tree-control-with-2-columns/m-p/4822600#M1128540</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;Please check this code as a reference.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS cl_gui_column_tree DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;CLASS cl_gui_cfw DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA tree1  TYPE REF TO cl_gui_alv_tree_simple.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCLUDE &amp;lt;icon&amp;gt;.&lt;/P&gt;&lt;P&gt;INCLUDE bcalv_simple_event_receiver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gt_sflight      TYPE sflight occurs 0,&lt;/P&gt;&lt;P&gt;      gt_fieldcatalog TYPE lvc_t_fcat,         " Field Catalog&lt;/P&gt;&lt;P&gt;      gt_sort         TYPE lvc_t_sort,         " Sorting Table&lt;/P&gt;&lt;P&gt;      ok_code         LIKE sy-ucomm.           " OK-Code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL SCREEN 100.&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;      Form  BUILD_FIELDCATALOG&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; This subroutine is used to build the field catalog for the ALV list&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;FORM build_fieldcatalog.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_structure_name = 'SFLIGHT'&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      ct_fieldcat      = gt_fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;change fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: ls_fieldcatalog TYPE lvc_s_fcat.&lt;/P&gt;&lt;P&gt;  LOOP AT gt_fieldcatalog INTO ls_fieldcatalog.&lt;/P&gt;&lt;P&gt;    CASE ls_fieldcatalog-fieldname.&lt;/P&gt;&lt;P&gt;      WHEN 'CARRID' OR 'CONNID' OR 'FLDATE'.&lt;/P&gt;&lt;P&gt;        ls_fieldcatalog-no_out = 'X'.&lt;/P&gt;&lt;P&gt;        ls_fieldcatalog-key    = ''.&lt;/P&gt;&lt;P&gt;      WHEN 'PRICE' OR 'SEATSOCC' OR 'SEATSMAX' OR 'PAYMENTSUM'.&lt;/P&gt;&lt;P&gt;        ls_fieldcatalog-do_sum = 'X'.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;    MODIFY gt_fieldcatalog FROM ls_fieldcatalog.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " BUILD_FIELDCATALOG&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;      Form  BUILD_OUTTAB&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Retrieving the data from the table and filling it in the output table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;of the ALV list&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;FORM build_outtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT carrid connid FROM sflight INTO TABLE gt_sflight.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " BUILD_OUTTAB&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;      Form  BUILD_SORT_TABLE&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This subroutine is used to build the sort table or the sort criteria&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;&lt;/P&gt;&lt;P&gt;FORM build_sort_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA ls_sort_wa TYPE lvc_s_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create sort-table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_sort_wa-spos = 1.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-fieldname = 'CARRID'.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-up = 'X'.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-subtot = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND ls_sort_wa TO gt_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_sort_wa-spos = 2.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-fieldname = 'CONNID'.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-up = 'X'.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-subtot = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND ls_sort_wa TO gt_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " BUILD_SORT_TABLE&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;      Module  PBO  OUTPUT&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This subroutine is used to build the ALV Tree&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;MODULE pbo OUTPUT.&lt;/P&gt;&lt;P&gt;  IF tree1 IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM init_tree.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'ZSTATUS'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                             " PBO  OUTPUT&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;      Module  PAI  INPUT&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This subroutine is used to handle the navigation on the screen&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;MODULE pai INPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE ok_code.&lt;/P&gt;&lt;P&gt;    WHEN 'EXIT' OR 'BACK' OR 'CANC'.&lt;/P&gt;&lt;P&gt;      PERFORM exit_program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;P&gt;      CALL METHOD cl_gui_cfw=&amp;gt;dispatch.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;  CLEAR ok_code.&lt;/P&gt;&lt;P&gt;ENDMODULE.                             " PAI  INPUT&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;      Form  exit_program&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      free object and leave program&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;FORM exit_program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD tree1-&amp;gt;free.&lt;/P&gt;&lt;P&gt;  LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " exit_program&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;      Form  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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Handling the events in the ALV Tree control in backend&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;FORM register_events.&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_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_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_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_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 tree1-&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;&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;on_add_hierarchy_node&lt;/P&gt;&lt;P&gt;                                                        FOR tree1.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " register_events&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;      Form  build_header&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      build table for header&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;FORM build_comment USING&lt;/P&gt;&lt;P&gt;      pt_list_commentary TYPE slis_t_listheader&lt;/P&gt;&lt;P&gt;      p_logo             TYPE sdydo_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ls_line TYPE slis_listheader.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LIST HEADING LINE: TYPE H&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ls_line.&lt;/P&gt;&lt;P&gt;  ls_line-typ  = 'H'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LS_LINE-KEY:  NOT USED FOR THIS TYPE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ls_line-info = 'ALV TREE DEMO for SAPTechnical.COM'.&lt;/P&gt;&lt;P&gt;  APPEND ls_line TO pt_list_commentary.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_logo = 'ENJOYSAP_LOGO'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "build_comment&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;      Form  init_tree&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Building the ALV-Tree for the first time display&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;&lt;/P&gt;&lt;P&gt;FORM init_tree.&lt;/P&gt;&lt;P&gt;  PERFORM build_fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM build_outtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM build_sort_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create container for alv-tree&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: l_tree_container_name(30) TYPE c,&lt;/P&gt;&lt;P&gt;        l_custom_container TYPE REF TO cl_gui_custom_container.&lt;/P&gt;&lt;P&gt;  l_tree_container_name = 'TREE1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT l_custom_container&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;            container_name = l_tree_container_name&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;            create_error                = 3&lt;/P&gt;&lt;P&gt;            lifetime_error              = 4&lt;/P&gt;&lt;P&gt;            lifetime_dynpro_dynpro_link = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create tree control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE OBJECT tree1&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;        i_parent              = l_custom_container&lt;/P&gt;&lt;P&gt;        i_node_selection_mode =&lt;/P&gt;&lt;P&gt;                              cl_gui_column_tree=&amp;gt;node_sel_mode_multiple&lt;/P&gt;&lt;P&gt;        i_item_selection      = 'X'&lt;/P&gt;&lt;P&gt;        i_no_html_header      = ''&lt;/P&gt;&lt;P&gt;        i_no_toolbar          = ''&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;        create_error                 = 3&lt;/P&gt;&lt;P&gt;        lifetime_error               = 4&lt;/P&gt;&lt;P&gt;        illegal_node_selection_mode  = 5&lt;/P&gt;&lt;P&gt;        failed                       = 6&lt;/P&gt;&lt;P&gt;        illegal_column_name          = 7.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create info-table for html-header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: lt_list_commentary TYPE slis_t_listheader,&lt;/P&gt;&lt;P&gt;        l_logo             TYPE sdydo_value.&lt;/P&gt;&lt;P&gt;  PERFORM build_comment USING&lt;/P&gt;&lt;P&gt;                 lt_list_commentary&lt;/P&gt;&lt;P&gt;                 l_logo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;repid for saving variants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: ls_variant TYPE disvariant.&lt;/P&gt;&lt;P&gt;  ls_variant-report = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;register events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM register_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create hierarchy&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD tree1-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_list_commentary = lt_list_commentary&lt;/P&gt;&lt;P&gt;      i_logo             = l_logo&lt;/P&gt;&lt;P&gt;      i_background_id    = 'ALV_BACKGROUND'&lt;/P&gt;&lt;P&gt;      i_save             = 'A'&lt;/P&gt;&lt;P&gt;      is_variant         = ls_variant&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      it_sort            = gt_sort&lt;/P&gt;&lt;P&gt;      it_outtab          = gt_sflight[]&lt;/P&gt;&lt;P&gt;      it_fieldcatalog    = gt_fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;expand first level&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD tree1-&amp;gt;expand_tree&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_level = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;optimize column-width&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD tree1-&amp;gt;column_optimize&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_start_column = tree1-&amp;gt;c_hierarchy_column_name&lt;/P&gt;&lt;P&gt;      i_end_column   = tree1-&amp;gt;c_hierarchy_column_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " init_tree&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Nov 2008 07:21:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tree-control-with-2-columns/m-p/4822600#M1128540</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-11-25T07:21:10Z</dc:date>
    </item>
    <item>
      <title>Re: Tree control with 2 columns</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tree-control-with-2-columns/m-p/4822601#M1128541</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't want an alv tree I would like to create a tree control for the navigation like se80 with the folders on the left side.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Nov 2008 10:11:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tree-control-with-2-columns/m-p/4822601#M1128541</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-11-25T10:11:52Z</dc:date>
    </item>
  </channel>
</rss>

