<?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: How to Add a Node in Tree? in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-add-a-node-in-tree/m-p/2164152#M458060</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello aRs,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check out the code below :-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: g_alv_tree         type ref to cl_gui_alv_tree,&lt;/P&gt;&lt;P&gt;      g_custom_container type ref to cl_gui_custom_container.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: gt_sflight      type sflight occurs 0,      "Output-Table&lt;/P&gt;&lt;P&gt;      ok_code like sy-ucomm,&lt;/P&gt;&lt;P&gt;      save_ok like sy-ucomm,           "OK-Code&lt;/P&gt;&lt;P&gt;      g_max type i value 255.&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;*&amp;amp;----&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;*&amp;amp;----&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;      process before output&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;&lt;/P&gt;&lt;P&gt;  set pf-status 'MAIN100'.&lt;/P&gt;&lt;P&gt;  set titlebar 'MAINTITLE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if g_alv_tree is initial.&lt;/P&gt;&lt;P&gt;    perform init_tree.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method cl_gui_cfw=&amp;gt;flush&lt;/P&gt;&lt;P&gt;      exceptions&lt;/P&gt;&lt;P&gt;        cntl_system_error = 1&lt;/P&gt;&lt;P&gt;        cntl_error        = 2.&lt;/P&gt;&lt;P&gt;    if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;      call function 'POPUP_TO_INFORM'&lt;/P&gt;&lt;P&gt;        exporting&lt;/P&gt;&lt;P&gt;          titel = 'Automation Queue failure'(801)&lt;/P&gt;&lt;P&gt;          txt1  = 'Internal error:'(802)&lt;/P&gt;&lt;P&gt;          txt2  = 'A method in the automation queue'(803)&lt;/P&gt;&lt;P&gt;          txt3  = 'caused a failure.'(804).&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmodule.                             " PBO  OUTPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;*&amp;amp;----&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;      process after input&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;  save_ok = ok_code.&lt;/P&gt;&lt;P&gt;  clear ok_code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  case save_ok.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§6. Call dispatch to process toolbar functions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      call method cl_gui_cfw=&amp;gt;dispatch.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method cl_gui_cfw=&amp;gt;flush.&lt;/P&gt;&lt;P&gt;endmodule.                             " PAI  INPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form init_tree.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§1b. Create ALV Tree Control and corresponding Container.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;&lt;/P&gt;&lt;P&gt;  l_tree_container_name = 'CCONTAINER1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     create object g_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;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      message x208(00) with 'ERROR'(100).&lt;/P&gt;&lt;P&gt;    endif.&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 g_alv_tree&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;        parent              = g_custom_container&lt;/P&gt;&lt;P&gt;        node_selection_mode = cl_gui_column_tree=&amp;gt;node_sel_mode_single&lt;/P&gt;&lt;P&gt;        item_selection      = 'X'&lt;/P&gt;&lt;P&gt;        no_html_header      = 'X'&lt;/P&gt;&lt;P&gt;        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;  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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§2. Create Hierarchy-header&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The simple ALV Tree uses the text of the fields which were used&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for sorting to define this header. When you use&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the 'normal' ALV Tree the hierarchy is build up freely&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;by the programmer this is not possible, so he has to define it&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;himself.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data l_hierarchy_header type treev_hhdr.&lt;/P&gt;&lt;P&gt;  perform build_hierarchy_header changing l_hierarchy_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§3. Create empty Tree Control&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTANT: Table 'gt_sflight' must be empty. Do not change this table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(even after this method call). You can change data of your table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;by calling methods of CL_GUI_ALV_TREE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Furthermore, the output table 'gt_outtab' must be global and can&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;only be used for one ALV Tree Control.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method g_alv_tree-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_structure_name    = 'SFLIGHT'&lt;/P&gt;&lt;P&gt;      is_hierarchy_header = l_hierarchy_header&lt;/P&gt;&lt;P&gt;    changing&lt;/P&gt;&lt;P&gt;      it_outtab           = gt_sflight. "table must be empty !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§4. Create hierarchy (nodes and leaves)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform create_hierarchy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§5. Send data to frontend.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method g_alv_tree-&amp;gt;frontend_update.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wait for automatic flush at end of pbo&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endform.                               " init_tree&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_hierarchy_header&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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 hierarchy-header-information&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_L_HIERARCHY_HEADER  strucxture for hierarchy-header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form build_hierarchy_header changing&lt;/P&gt;&lt;P&gt;                               p_hierarchy_header type treev_hhdr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-heading = 'Month/Carrier/Date'(300).&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-tooltip = 'Flights in a month'(400).&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-width = 30.&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-width_pix = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " build_hierarchy_header&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;*&amp;amp;----&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;/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 g_custom_container-&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;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  create_hierarchy&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form create_hierarchy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: ls_sflight type sflight,&lt;/P&gt;&lt;P&gt;        lt_sflight type sflight occurs 0,&lt;/P&gt;&lt;P&gt;        l_yyyymm(6) type c,            "year and month of sflight-fldate&lt;/P&gt;&lt;P&gt;        l_yyyymm_last(6) type c,&lt;/P&gt;&lt;P&gt;        l_carrid like sflight-carrid,&lt;/P&gt;&lt;P&gt;        l_carrid_last like sflight-carrid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_month_key type lvc_nkey,&lt;/P&gt;&lt;P&gt;        l_carrid_key type lvc_nkey,&lt;/P&gt;&lt;P&gt;        l_last_key type lvc_nkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§4a. Select data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  select * from sflight into table lt_sflight up to g_max rows.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§4b. Sort output table according to your conceived hierarchy&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;We sort in this order:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   year and month (top level nodes, yyyymm of DATS)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     carrier id (next level)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        day of month (leaves, dd of DATS)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  sort lt_sflight by fldate&lt;EM&gt;0(6) carrid fldate&lt;/EM&gt;6(2).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Note: The top level nodes do not correspond to a field of the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;output table. Instead we use data of the table to invent another&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;hierarchy level above the levels that can be build by sorting.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§4c. Add data to tree&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at lt_sflight into ls_sflight.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Prerequesite: The table is sorted.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;You add a node everytime the values of a sorted field changes.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Finally, the complete line is added as a leaf below the last&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    l_yyyymm = ls_sflight-fldate+0(6).&lt;/P&gt;&lt;P&gt;    l_carrid = ls_sflight-carrid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Top level nodes:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if l_yyyymm &amp;lt;&amp;gt; l_yyyymm_last.      "on change of l_yyyymm&lt;/P&gt;&lt;P&gt;      l_yyyymm_last = l_yyyymm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Providing no key means that the node is added on top level:&lt;/P&gt;&lt;P&gt;      perform add_month using    l_yyyymm&lt;/P&gt;&lt;P&gt;                                      ''&lt;/P&gt;&lt;P&gt;                             changing l_month_key.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The month changed, thus, there is no predecessor carrier&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      clear l_carrid_last.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Carrier nodes:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(always inserted as child of the last month&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; which is identified by 'l_month_key')&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if l_carrid &amp;lt;&amp;gt; l_carrid_last.      "on change of l_carrid&lt;/P&gt;&lt;P&gt;      l_carrid_last = l_carrid.&lt;/P&gt;&lt;P&gt;      perform add_carrid_line using    ls_sflight&lt;/P&gt;&lt;P&gt;                                       l_month_key&lt;/P&gt;&lt;P&gt;                              changing l_carrid_key.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Leaf:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(always inserted as child of the last carrier&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; which is identified by 'l_carrid_key')&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform add_complete_line using  ls_sflight&lt;/P&gt;&lt;P&gt;                                     l_carrid_key&lt;/P&gt;&lt;P&gt;                            changing l_last_key.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " create_hierarchy&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  add_month&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form add_month  using     p_yyyymm type c&lt;/P&gt;&lt;P&gt;                          p_relat_key type lvc_nkey&lt;/P&gt;&lt;P&gt;                changing  p_node_key type lvc_nkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_node_text type lvc_value,&lt;/P&gt;&lt;P&gt;        ls_sflight type sflight,&lt;/P&gt;&lt;P&gt;        l_month(15) type c.            "output string for month&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get month name for node text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform get_month using p_yyyymm&lt;/P&gt;&lt;P&gt;                    changing l_month.&lt;/P&gt;&lt;P&gt;  l_node_text = l_month.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add node:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV Tree firstly inserts this node as a leaf if you do not provide&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_NODE_LAYOUT with field ISFOLDER set. In form 'add_carrid_line'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the leaf gets a child and thus ALV converts it to a folder&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;automatically.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  call method g_alv_tree-&amp;gt;add_node&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_relat_node_key = p_relat_key&lt;/P&gt;&lt;P&gt;      i_relationship   = cl_gui_column_tree=&amp;gt;relat_last_child&lt;/P&gt;&lt;P&gt;      i_node_text      = l_node_text&lt;/P&gt;&lt;P&gt;      is_outtab_line   = ls_sflight&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      e_new_node_key   = p_node_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " add_month&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;form add_carrid_line using     ps_sflight type sflight&lt;/P&gt;&lt;P&gt;                               p_relat_key type lvc_nkey&lt;/P&gt;&lt;P&gt;                     changing  p_node_key type lvc_nkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_node_text type lvc_value,&lt;/P&gt;&lt;P&gt;        ls_sflight type sflight.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add node&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV Tree firstly inserts this node as a leaf if you do not provide&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_NODE_LAYOUT with field ISFOLDER set. In form 'add_carrid_line'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the leaf gets a child and thus ALV converts it to a folder&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;automatically.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  l_node_text =  ps_sflight-carrid.&lt;/P&gt;&lt;P&gt;  call method g_alv_tree-&amp;gt;add_node&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_relat_node_key = p_relat_key&lt;/P&gt;&lt;P&gt;      i_relationship   = cl_gui_column_tree=&amp;gt;relat_last_child&lt;/P&gt;&lt;P&gt;      i_node_text      = l_node_text&lt;/P&gt;&lt;P&gt;      is_outtab_line   = ls_sflight&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      e_new_node_key   = p_node_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " add_carrid_line&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  add_complete_line&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form add_complete_line using   ps_sflight type sflight&lt;/P&gt;&lt;P&gt;                               p_relat_key type lvc_nkey&lt;/P&gt;&lt;P&gt;                     changing  p_node_key type lvc_nkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_node_text type lvc_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write ps_sflight-fldate to l_node_text mm/dd/yyyy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add leaf:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV Tree firstly inserts this node as a leaf if you do not provide&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_NODE_LAYOUT with field ISFOLDER set.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Since these nodes will never get children they stay leaves&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(as intended).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  &lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;call method g_alv_tree-&amp;gt;add_node&lt;BR /&gt; exporting&lt;BR /&gt; i_relat_node_key = p_relat_key&lt;BR /&gt; i_relationship = cl_gui_column_tree=&amp;gt;relat_last_child&lt;BR /&gt; is_outtab_line = ps_sflight&lt;BR /&gt; i_node_text = l_node_text&lt;BR /&gt; importing&lt;BR /&gt; e_new_node_key = p_node_key&lt;/P&gt;.&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " add_complete_line&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_MONTH&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_P_YYYYMM  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_L_MONTH  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form get_month using    p_yyyymm&lt;/P&gt;&lt;P&gt;               changing p_month.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Returns the name of month according to the digits in p_yyyymm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_monthdigits(2) type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_monthdigits = p_yyyymm+4(2).&lt;/P&gt;&lt;P&gt;  case l_monthdigits.&lt;/P&gt;&lt;P&gt;    when '01'.&lt;/P&gt;&lt;P&gt;      p_month = 'January'(701).&lt;/P&gt;&lt;P&gt;    when '02'.&lt;/P&gt;&lt;P&gt;      p_month = 'February'(702).&lt;/P&gt;&lt;P&gt;    when '03'.&lt;/P&gt;&lt;P&gt;      p_month = 'March'(703).&lt;/P&gt;&lt;P&gt;    when '04'.&lt;/P&gt;&lt;P&gt;      p_month = 'April'(704).&lt;/P&gt;&lt;P&gt;    when '05'.&lt;/P&gt;&lt;P&gt;      p_month = 'May'(705).&lt;/P&gt;&lt;P&gt;    when '06'.&lt;/P&gt;&lt;P&gt;      p_month = 'June'(706).&lt;/P&gt;&lt;P&gt;    when '07'.&lt;/P&gt;&lt;P&gt;      p_month = 'July'(707).&lt;/P&gt;&lt;P&gt;    when '08'.&lt;/P&gt;&lt;P&gt;      p_month = 'August'(708).&lt;/P&gt;&lt;P&gt;    when '09'.&lt;/P&gt;&lt;P&gt;      p_month = 'September'(709).&lt;/P&gt;&lt;P&gt;    when '10'.&lt;/P&gt;&lt;P&gt;      p_month = 'October'(710).&lt;/P&gt;&lt;P&gt;    when '11'.&lt;/P&gt;&lt;P&gt;      p_month = 'November'(711).&lt;/P&gt;&lt;P&gt;    when '12'.&lt;/P&gt;&lt;P&gt;      p_month = 'December'(712).&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;  concatenate p_yyyymm+0(4) '-&amp;gt;' p_month into p_month.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " GET_MONTH&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;Reward points if helpful&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Sachin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 26 Apr 2007 14:34:55 GMT</pubDate>
    <dc:creator>sonu_p2</dc:creator>
    <dc:date>2007-04-26T14:34:55Z</dc:date>
    <item>
      <title>How to Add a Node in Tree?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-add-a-node-in-tree/m-p/2164151#M458059</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;I am using the class cl_gui_alv_tree_simple, I need to add a node after tree displayed in the screen?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried to use method TREE_ADD_NODE , but this found protected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;aRs&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 26 Apr 2007 14:15:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-add-a-node-in-tree/m-p/2164151#M458059</guid>
      <dc:creator>former_member194669</dc:creator>
      <dc:date>2007-04-26T14:15:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to Add a Node in Tree?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-add-a-node-in-tree/m-p/2164152#M458060</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello aRs,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check out the code below :-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: g_alv_tree         type ref to cl_gui_alv_tree,&lt;/P&gt;&lt;P&gt;      g_custom_container type ref to cl_gui_custom_container.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: gt_sflight      type sflight occurs 0,      "Output-Table&lt;/P&gt;&lt;P&gt;      ok_code like sy-ucomm,&lt;/P&gt;&lt;P&gt;      save_ok like sy-ucomm,           "OK-Code&lt;/P&gt;&lt;P&gt;      g_max type i value 255.&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;*&amp;amp;----&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;*&amp;amp;----&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;      process before output&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;&lt;/P&gt;&lt;P&gt;  set pf-status 'MAIN100'.&lt;/P&gt;&lt;P&gt;  set titlebar 'MAINTITLE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if g_alv_tree is initial.&lt;/P&gt;&lt;P&gt;    perform init_tree.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call method cl_gui_cfw=&amp;gt;flush&lt;/P&gt;&lt;P&gt;      exceptions&lt;/P&gt;&lt;P&gt;        cntl_system_error = 1&lt;/P&gt;&lt;P&gt;        cntl_error        = 2.&lt;/P&gt;&lt;P&gt;    if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;      call function 'POPUP_TO_INFORM'&lt;/P&gt;&lt;P&gt;        exporting&lt;/P&gt;&lt;P&gt;          titel = 'Automation Queue failure'(801)&lt;/P&gt;&lt;P&gt;          txt1  = 'Internal error:'(802)&lt;/P&gt;&lt;P&gt;          txt2  = 'A method in the automation queue'(803)&lt;/P&gt;&lt;P&gt;          txt3  = 'caused a failure.'(804).&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmodule.                             " PBO  OUTPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;*&amp;amp;----&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;      process after input&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;  save_ok = ok_code.&lt;/P&gt;&lt;P&gt;  clear ok_code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  case save_ok.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§6. Call dispatch to process toolbar functions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      call method cl_gui_cfw=&amp;gt;dispatch.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method cl_gui_cfw=&amp;gt;flush.&lt;/P&gt;&lt;P&gt;endmodule.                             " PAI  INPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form init_tree.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§1b. Create ALV Tree Control and corresponding Container.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;&lt;/P&gt;&lt;P&gt;  l_tree_container_name = 'CCONTAINER1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     create object g_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;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      message x208(00) with 'ERROR'(100).&lt;/P&gt;&lt;P&gt;    endif.&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 g_alv_tree&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;        parent              = g_custom_container&lt;/P&gt;&lt;P&gt;        node_selection_mode = cl_gui_column_tree=&amp;gt;node_sel_mode_single&lt;/P&gt;&lt;P&gt;        item_selection      = 'X'&lt;/P&gt;&lt;P&gt;        no_html_header      = 'X'&lt;/P&gt;&lt;P&gt;        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;  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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§2. Create Hierarchy-header&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The simple ALV Tree uses the text of the fields which were used&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for sorting to define this header. When you use&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the 'normal' ALV Tree the hierarchy is build up freely&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;by the programmer this is not possible, so he has to define it&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;himself.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data l_hierarchy_header type treev_hhdr.&lt;/P&gt;&lt;P&gt;  perform build_hierarchy_header changing l_hierarchy_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§3. Create empty Tree Control&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTANT: Table 'gt_sflight' must be empty. Do not change this table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(even after this method call). You can change data of your table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;by calling methods of CL_GUI_ALV_TREE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Furthermore, the output table 'gt_outtab' must be global and can&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;only be used for one ALV Tree Control.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method g_alv_tree-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_structure_name    = 'SFLIGHT'&lt;/P&gt;&lt;P&gt;      is_hierarchy_header = l_hierarchy_header&lt;/P&gt;&lt;P&gt;    changing&lt;/P&gt;&lt;P&gt;      it_outtab           = gt_sflight. "table must be empty !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§4. Create hierarchy (nodes and leaves)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform create_hierarchy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§5. Send data to frontend.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method g_alv_tree-&amp;gt;frontend_update.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wait for automatic flush at end of pbo&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endform.                               " init_tree&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_hierarchy_header&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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 hierarchy-header-information&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_L_HIERARCHY_HEADER  strucxture for hierarchy-header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form build_hierarchy_header changing&lt;/P&gt;&lt;P&gt;                               p_hierarchy_header type treev_hhdr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-heading = 'Month/Carrier/Date'(300).&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-tooltip = 'Flights in a month'(400).&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-width = 30.&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-width_pix = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " build_hierarchy_header&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;*&amp;amp;----&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;/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 g_custom_container-&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;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  create_hierarchy&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form create_hierarchy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: ls_sflight type sflight,&lt;/P&gt;&lt;P&gt;        lt_sflight type sflight occurs 0,&lt;/P&gt;&lt;P&gt;        l_yyyymm(6) type c,            "year and month of sflight-fldate&lt;/P&gt;&lt;P&gt;        l_yyyymm_last(6) type c,&lt;/P&gt;&lt;P&gt;        l_carrid like sflight-carrid,&lt;/P&gt;&lt;P&gt;        l_carrid_last like sflight-carrid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_month_key type lvc_nkey,&lt;/P&gt;&lt;P&gt;        l_carrid_key type lvc_nkey,&lt;/P&gt;&lt;P&gt;        l_last_key type lvc_nkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§4a. Select data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  select * from sflight into table lt_sflight up to g_max rows.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§4b. Sort output table according to your conceived hierarchy&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;We sort in this order:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   year and month (top level nodes, yyyymm of DATS)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     carrier id (next level)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        day of month (leaves, dd of DATS)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  sort lt_sflight by fldate&lt;EM&gt;0(6) carrid fldate&lt;/EM&gt;6(2).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Note: The top level nodes do not correspond to a field of the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;output table. Instead we use data of the table to invent another&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;hierarchy level above the levels that can be build by sorting.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§4c. Add data to tree&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at lt_sflight into ls_sflight.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Prerequesite: The table is sorted.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;You add a node everytime the values of a sorted field changes.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Finally, the complete line is added as a leaf below the last&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    l_yyyymm = ls_sflight-fldate+0(6).&lt;/P&gt;&lt;P&gt;    l_carrid = ls_sflight-carrid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Top level nodes:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if l_yyyymm &amp;lt;&amp;gt; l_yyyymm_last.      "on change of l_yyyymm&lt;/P&gt;&lt;P&gt;      l_yyyymm_last = l_yyyymm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Providing no key means that the node is added on top level:&lt;/P&gt;&lt;P&gt;      perform add_month using    l_yyyymm&lt;/P&gt;&lt;P&gt;                                      ''&lt;/P&gt;&lt;P&gt;                             changing l_month_key.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The month changed, thus, there is no predecessor carrier&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      clear l_carrid_last.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Carrier nodes:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(always inserted as child of the last month&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; which is identified by 'l_month_key')&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if l_carrid &amp;lt;&amp;gt; l_carrid_last.      "on change of l_carrid&lt;/P&gt;&lt;P&gt;      l_carrid_last = l_carrid.&lt;/P&gt;&lt;P&gt;      perform add_carrid_line using    ls_sflight&lt;/P&gt;&lt;P&gt;                                       l_month_key&lt;/P&gt;&lt;P&gt;                              changing l_carrid_key.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Leaf:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(always inserted as child of the last carrier&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; which is identified by 'l_carrid_key')&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform add_complete_line using  ls_sflight&lt;/P&gt;&lt;P&gt;                                     l_carrid_key&lt;/P&gt;&lt;P&gt;                            changing l_last_key.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " create_hierarchy&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  add_month&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form add_month  using     p_yyyymm type c&lt;/P&gt;&lt;P&gt;                          p_relat_key type lvc_nkey&lt;/P&gt;&lt;P&gt;                changing  p_node_key type lvc_nkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_node_text type lvc_value,&lt;/P&gt;&lt;P&gt;        ls_sflight type sflight,&lt;/P&gt;&lt;P&gt;        l_month(15) type c.            "output string for month&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get month name for node text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform get_month using p_yyyymm&lt;/P&gt;&lt;P&gt;                    changing l_month.&lt;/P&gt;&lt;P&gt;  l_node_text = l_month.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add node:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV Tree firstly inserts this node as a leaf if you do not provide&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_NODE_LAYOUT with field ISFOLDER set. In form 'add_carrid_line'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the leaf gets a child and thus ALV converts it to a folder&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;automatically.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  call method g_alv_tree-&amp;gt;add_node&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_relat_node_key = p_relat_key&lt;/P&gt;&lt;P&gt;      i_relationship   = cl_gui_column_tree=&amp;gt;relat_last_child&lt;/P&gt;&lt;P&gt;      i_node_text      = l_node_text&lt;/P&gt;&lt;P&gt;      is_outtab_line   = ls_sflight&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      e_new_node_key   = p_node_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " add_month&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;form add_carrid_line using     ps_sflight type sflight&lt;/P&gt;&lt;P&gt;                               p_relat_key type lvc_nkey&lt;/P&gt;&lt;P&gt;                     changing  p_node_key type lvc_nkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_node_text type lvc_value,&lt;/P&gt;&lt;P&gt;        ls_sflight type sflight.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add node&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV Tree firstly inserts this node as a leaf if you do not provide&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_NODE_LAYOUT with field ISFOLDER set. In form 'add_carrid_line'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the leaf gets a child and thus ALV converts it to a folder&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;automatically.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  l_node_text =  ps_sflight-carrid.&lt;/P&gt;&lt;P&gt;  call method g_alv_tree-&amp;gt;add_node&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_relat_node_key = p_relat_key&lt;/P&gt;&lt;P&gt;      i_relationship   = cl_gui_column_tree=&amp;gt;relat_last_child&lt;/P&gt;&lt;P&gt;      i_node_text      = l_node_text&lt;/P&gt;&lt;P&gt;      is_outtab_line   = ls_sflight&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      e_new_node_key   = p_node_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " add_carrid_line&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  add_complete_line&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form add_complete_line using   ps_sflight type sflight&lt;/P&gt;&lt;P&gt;                               p_relat_key type lvc_nkey&lt;/P&gt;&lt;P&gt;                     changing  p_node_key type lvc_nkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_node_text type lvc_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write ps_sflight-fldate to l_node_text mm/dd/yyyy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add leaf:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV Tree firstly inserts this node as a leaf if you do not provide&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_NODE_LAYOUT with field ISFOLDER set.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Since these nodes will never get children they stay leaves&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(as intended).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  &lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;call method g_alv_tree-&amp;gt;add_node&lt;BR /&gt; exporting&lt;BR /&gt; i_relat_node_key = p_relat_key&lt;BR /&gt; i_relationship = cl_gui_column_tree=&amp;gt;relat_last_child&lt;BR /&gt; is_outtab_line = ps_sflight&lt;BR /&gt; i_node_text = l_node_text&lt;BR /&gt; importing&lt;BR /&gt; e_new_node_key = p_node_key&lt;/P&gt;.&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " add_complete_line&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_MONTH&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;     --&amp;gt;P_P_YYYYMM  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_L_MONTH  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form get_month using    p_yyyymm&lt;/P&gt;&lt;P&gt;               changing p_month.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Returns the name of month according to the digits in p_yyyymm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_monthdigits(2) type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_monthdigits = p_yyyymm+4(2).&lt;/P&gt;&lt;P&gt;  case l_monthdigits.&lt;/P&gt;&lt;P&gt;    when '01'.&lt;/P&gt;&lt;P&gt;      p_month = 'January'(701).&lt;/P&gt;&lt;P&gt;    when '02'.&lt;/P&gt;&lt;P&gt;      p_month = 'February'(702).&lt;/P&gt;&lt;P&gt;    when '03'.&lt;/P&gt;&lt;P&gt;      p_month = 'March'(703).&lt;/P&gt;&lt;P&gt;    when '04'.&lt;/P&gt;&lt;P&gt;      p_month = 'April'(704).&lt;/P&gt;&lt;P&gt;    when '05'.&lt;/P&gt;&lt;P&gt;      p_month = 'May'(705).&lt;/P&gt;&lt;P&gt;    when '06'.&lt;/P&gt;&lt;P&gt;      p_month = 'June'(706).&lt;/P&gt;&lt;P&gt;    when '07'.&lt;/P&gt;&lt;P&gt;      p_month = 'July'(707).&lt;/P&gt;&lt;P&gt;    when '08'.&lt;/P&gt;&lt;P&gt;      p_month = 'August'(708).&lt;/P&gt;&lt;P&gt;    when '09'.&lt;/P&gt;&lt;P&gt;      p_month = 'September'(709).&lt;/P&gt;&lt;P&gt;    when '10'.&lt;/P&gt;&lt;P&gt;      p_month = 'October'(710).&lt;/P&gt;&lt;P&gt;    when '11'.&lt;/P&gt;&lt;P&gt;      p_month = 'November'(711).&lt;/P&gt;&lt;P&gt;    when '12'.&lt;/P&gt;&lt;P&gt;      p_month = 'December'(712).&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;  concatenate p_yyyymm+0(4) '-&amp;gt;' p_month into p_month.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " GET_MONTH&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;Reward points if helpful&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Sachin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 26 Apr 2007 14:34:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-add-a-node-in-tree/m-p/2164152#M458060</guid>
      <dc:creator>sonu_p2</dc:creator>
      <dc:date>2007-04-26T14:34:55Z</dc:date>
    </item>
    <item>
      <title>Re: How to Add a Node in Tree?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-add-a-node-in-tree/m-p/2164153#M458061</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try tis transactions.&lt;/P&gt;&lt;P&gt;SE83, DWDM and abapdocu.&lt;/P&gt;&lt;P&gt;U ll get reall good examples.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &amp;amp; Regards&lt;/P&gt;&lt;P&gt;Santhosh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Apr 2007 13:12:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-add-a-node-in-tree/m-p/2164153#M458061</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-27T13:12:35Z</dc:date>
    </item>
  </channel>
</rss>

