<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ALV Tree Problem in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-problem/m-p/2175849#M462088</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mustafa,&lt;/P&gt;&lt;P&gt;            use class &lt;/P&gt;&lt;P&gt;           Refer this code :&amp;lt;b&amp;gt;CL_GUI_COLUMN_TREE&amp;lt;/b&amp;gt;,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : TREE  TYPE REF TO CL_GUI_COLUMN_TREE,&lt;/P&gt;&lt;P&gt;CREATE OBJECT tree&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LIFETIME                    =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      parent                      = split_cntr-&amp;gt;top_left_container&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SHELLSTYLE                  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      node_selection_mode         =&lt;/P&gt;&lt;P&gt;      cl_gui_column_tree=&amp;gt;node_sel_mode_single&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   HIDE_SELECTION              =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      item_selection              = 'X'&lt;/P&gt;&lt;P&gt;      hierarchy_column_name       = 'COLUMN1'&lt;/P&gt;&lt;P&gt;      hierarchy_header            = hhdr&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   NO_HIERARCHY_COLUMN         =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   NAME                        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LIFETIME_ERROR              = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CNTL_SYSTEM_ERROR           = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CREATE_ERROR                = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ILLEGAL_NODE_SELECTION_MODE = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FAILED                      = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ILLEGAL_COLUMN_NAME         = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   others                      = 7&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      .&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----CALLING METHOD FOR ADDING COLUMN IN TREE&lt;/P&gt;&lt;P&gt;  CALL METHOD tree-&amp;gt;add_column&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      name                         = 'COLUMN2'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      HIDDEN                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      DISABLED                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ALIGNMENT                    =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      width                        = 40&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      WIDTH_PIX                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      HEADER_IMAGE                 =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      header_text                  =  'Description'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      HEADER_TOOLTIP               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      COLUMN_EXISTS                = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ILLEGAL_COLUMN_NAME          = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      TOO_MANY_COLUMNS             = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ILLEGAL_ALIGNMENT            = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      DIFFERENT_COLUMN_TYPES       = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CNTL_SYSTEM_ERROR            = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FAILED                       = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      PREDECESSOR_COLUMN_NOT_FOUND = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      others                       = 9&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&amp;amp;---ASSIGNING TEXT AND OTHER ATTRIBUTES TO THE NODES OF TREE&lt;/P&gt;&lt;P&gt;  DATA : node TYPE mtreesnode,&lt;/P&gt;&lt;P&gt;         item TYPE mtreeitm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH :  item_table , node_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  prog_name = trdir-name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR i_objlist.&lt;/P&gt;&lt;P&gt;*ROOT NODE&lt;/P&gt;&lt;P&gt;  CLEAR node.&lt;/P&gt;&lt;P&gt;  node-node_key = '001'.&lt;/P&gt;&lt;P&gt;  node-isfolder = 'X'.&lt;/P&gt;&lt;P&gt;  node-expander = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND node TO node_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR item.&lt;/P&gt;&lt;P&gt;  item-node_key = '001'.&lt;/P&gt;&lt;P&gt;  item-item_name = 'COLUMN1'.&lt;/P&gt;&lt;P&gt;  item-class = cl_gui_column_tree=&amp;gt;item_class_text.&lt;/P&gt;&lt;P&gt;  item-text = prog_name.&lt;/P&gt;&lt;P&gt;  APPEND item TO item_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR item.&lt;/P&gt;&lt;P&gt;  item-node_key = '001'.&lt;/P&gt;&lt;P&gt;  item-item_name = 'COLUMN2'.&lt;/P&gt;&lt;P&gt;  item-class = cl_gui_column_tree=&amp;gt;item_class_text.&lt;/P&gt;&lt;P&gt;  item-text = p_text.&lt;/P&gt;&lt;P&gt;  APPEND item TO item_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Dict.Structures&lt;/P&gt;&lt;P&gt;  READ TABLE i_objlist WITH KEY type = 'T'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CLEAR node.&lt;/P&gt;&lt;P&gt;    node-node_key = '111'.&lt;/P&gt;&lt;P&gt;    node-relatkey = '001'.&lt;/P&gt;&lt;P&gt;    node-relatship = cl_gui_column_tree=&amp;gt;relat_first_child.&lt;/P&gt;&lt;P&gt;    node-isfolder = 'X'.&lt;/P&gt;&lt;P&gt;    node-expander = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND node TO node_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR item.&lt;/P&gt;&lt;P&gt;    item-node_key = '111'.&lt;/P&gt;&lt;P&gt;    item-item_name = 'COLUMN1'.&lt;/P&gt;&lt;P&gt;    item-class = cl_gui_column_tree=&amp;gt;item_class_text.&lt;/P&gt;&lt;P&gt;    item-text ='Dict.Structures'.&lt;/P&gt;&lt;P&gt;    APPEND item TO item_table.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Types&lt;/P&gt;&lt;P&gt;  READ TABLE i_objlist WITH KEY type = 'Y'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CLEAR node.&lt;/P&gt;&lt;P&gt;    node-node_key = '112'.&lt;/P&gt;&lt;P&gt;    node-relatkey = '001'.&lt;/P&gt;&lt;P&gt;    node-relatship = cl_gui_column_tree=&amp;gt;relat_first_child.&lt;/P&gt;&lt;P&gt;    node-isfolder = 'X'.&lt;/P&gt;&lt;P&gt;    node-expander = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND node TO node_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR item.&lt;/P&gt;&lt;P&gt;    item-node_key = '112'.&lt;/P&gt;&lt;P&gt;    item-item_name = 'COLUMN1'.&lt;/P&gt;&lt;P&gt;    item-class = cl_gui_column_tree=&amp;gt;item_class_text.&lt;/P&gt;&lt;P&gt;    item-text ='Types'.&lt;/P&gt;&lt;P&gt;    APPEND item TO item_table.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Fields&lt;/P&gt;&lt;P&gt;  READ TABLE i_objlist WITH KEY type = 'D'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CLEAR node.&lt;/P&gt;&lt;P&gt;    node-node_key = '113'.&lt;/P&gt;&lt;P&gt;    node-relatkey = '001'.&lt;/P&gt;&lt;P&gt;    node-relatship = cl_gui_column_tree=&amp;gt;relat_first_child.&lt;/P&gt;&lt;P&gt;    node-isfolder = 'X'.&lt;/P&gt;&lt;P&gt;    node-expander = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND node TO node_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR item.&lt;/P&gt;&lt;P&gt;    item-node_key = '113'.&lt;/P&gt;&lt;P&gt;    item-item_name = 'COLUMN1'.&lt;/P&gt;&lt;P&gt;    item-class = cl_gui_column_tree=&amp;gt;item_class_text.&lt;/P&gt;&lt;P&gt;    item-text ='Fields'.&lt;/P&gt;&lt;P&gt;    APPEND item TO item_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD tree-&amp;gt;add_nodes_and_items&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      node_table                     = node_table&lt;/P&gt;&lt;P&gt;      item_table                     = item_table&lt;/P&gt;&lt;P&gt;      item_table_structure_name      = 'MTREEITM'&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      failed                         = 1&lt;/P&gt;&lt;P&gt;      cntl_system_error              = 2&lt;/P&gt;&lt;P&gt;      error_in_tables                = 3&lt;/P&gt;&lt;P&gt;      dp_error                       = 4&lt;/P&gt;&lt;P&gt;      table_structure_name_not_found = 5&lt;/P&gt;&lt;P&gt;      OTHERS                         = 6.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if helpful.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Hemant&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 07 May 2007 12:14:14 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-05-07T12:14:14Z</dc:date>
    <item>
      <title>ALV Tree Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-problem/m-p/2175846#M462085</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 trying to expand the tree according to tree level.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab where level = lvl.&lt;/P&gt;&lt;P&gt;      clear snode.&lt;/P&gt;&lt;P&gt;      snode = itab-key.&lt;/P&gt;&lt;P&gt;      append snode to inode.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call method tree1-&amp;gt;expand_nodes&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      it_node_key             = inode&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      failed                  = 1&lt;/P&gt;&lt;P&gt;      cntl_system_error       = 2&lt;/P&gt;&lt;P&gt;      error_in_node_key_table = 3&lt;/P&gt;&lt;P&gt;      dp_error                = 4&lt;/P&gt;&lt;P&gt;      node_not_found          = 5&lt;/P&gt;&lt;P&gt;      others                  = 6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when lvl = 1 everything is ok it expands level 1 nodes&lt;/P&gt;&lt;P&gt;but if lvl greater than 1 (2,3,4 ...) it gives error&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Runtime Errors         MESSAGE_TYPE_X&amp;lt;/b&amp;gt;&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;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 May 2007 12:03:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-problem/m-p/2175846#M462085</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-07T12:03:18Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Tree Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-problem/m-p/2175847#M462086</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;ok i solved it &lt;/P&gt;&lt;P&gt;it gives error because i tried to expand a node which has no child&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, 07 May 2007 12:09:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-problem/m-p/2175847#M462086</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-07T12:09:51Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Tree Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-problem/m-p/2175848#M462087</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mustafa,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Good ... Check out the following example program for ALV Tree&amp;lt;/b&amp;gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zdemo_alv_tree.&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,   " Output-Table&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;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 * 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;  ls_sort_wa-spos = 3.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-fieldname = 'FLDATE'.&lt;/P&gt;&lt;P&gt;  ls_sort_wa-up = '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;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;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Good Luck and thanks&lt;/P&gt;&lt;P&gt;AK&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 May 2007 12:10:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-problem/m-p/2175848#M462087</guid>
      <dc:creator>ashok_kumar24</dc:creator>
      <dc:date>2007-05-07T12:10:27Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Tree Problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-problem/m-p/2175849#M462088</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mustafa,&lt;/P&gt;&lt;P&gt;            use class &lt;/P&gt;&lt;P&gt;           Refer this code :&amp;lt;b&amp;gt;CL_GUI_COLUMN_TREE&amp;lt;/b&amp;gt;,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : TREE  TYPE REF TO CL_GUI_COLUMN_TREE,&lt;/P&gt;&lt;P&gt;CREATE OBJECT tree&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LIFETIME                    =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      parent                      = split_cntr-&amp;gt;top_left_container&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SHELLSTYLE                  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      node_selection_mode         =&lt;/P&gt;&lt;P&gt;      cl_gui_column_tree=&amp;gt;node_sel_mode_single&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   HIDE_SELECTION              =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      item_selection              = 'X'&lt;/P&gt;&lt;P&gt;      hierarchy_column_name       = 'COLUMN1'&lt;/P&gt;&lt;P&gt;      hierarchy_header            = hhdr&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   NO_HIERARCHY_COLUMN         =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   NAME                        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LIFETIME_ERROR              = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CNTL_SYSTEM_ERROR           = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CREATE_ERROR                = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ILLEGAL_NODE_SELECTION_MODE = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FAILED                      = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ILLEGAL_COLUMN_NAME         = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   others                      = 7&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      .&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----CALLING METHOD FOR ADDING COLUMN IN TREE&lt;/P&gt;&lt;P&gt;  CALL METHOD tree-&amp;gt;add_column&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      name                         = 'COLUMN2'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      HIDDEN                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      DISABLED                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ALIGNMENT                    =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      width                        = 40&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      WIDTH_PIX                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      HEADER_IMAGE                 =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      header_text                  =  'Description'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      HEADER_TOOLTIP               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      COLUMN_EXISTS                = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ILLEGAL_COLUMN_NAME          = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      TOO_MANY_COLUMNS             = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ILLEGAL_ALIGNMENT            = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      DIFFERENT_COLUMN_TYPES       = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CNTL_SYSTEM_ERROR            = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FAILED                       = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      PREDECESSOR_COLUMN_NOT_FOUND = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      others                       = 9&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&amp;amp;---ASSIGNING TEXT AND OTHER ATTRIBUTES TO THE NODES OF TREE&lt;/P&gt;&lt;P&gt;  DATA : node TYPE mtreesnode,&lt;/P&gt;&lt;P&gt;         item TYPE mtreeitm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH :  item_table , node_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  prog_name = trdir-name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR i_objlist.&lt;/P&gt;&lt;P&gt;*ROOT NODE&lt;/P&gt;&lt;P&gt;  CLEAR node.&lt;/P&gt;&lt;P&gt;  node-node_key = '001'.&lt;/P&gt;&lt;P&gt;  node-isfolder = 'X'.&lt;/P&gt;&lt;P&gt;  node-expander = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND node TO node_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR item.&lt;/P&gt;&lt;P&gt;  item-node_key = '001'.&lt;/P&gt;&lt;P&gt;  item-item_name = 'COLUMN1'.&lt;/P&gt;&lt;P&gt;  item-class = cl_gui_column_tree=&amp;gt;item_class_text.&lt;/P&gt;&lt;P&gt;  item-text = prog_name.&lt;/P&gt;&lt;P&gt;  APPEND item TO item_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR item.&lt;/P&gt;&lt;P&gt;  item-node_key = '001'.&lt;/P&gt;&lt;P&gt;  item-item_name = 'COLUMN2'.&lt;/P&gt;&lt;P&gt;  item-class = cl_gui_column_tree=&amp;gt;item_class_text.&lt;/P&gt;&lt;P&gt;  item-text = p_text.&lt;/P&gt;&lt;P&gt;  APPEND item TO item_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Dict.Structures&lt;/P&gt;&lt;P&gt;  READ TABLE i_objlist WITH KEY type = 'T'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CLEAR node.&lt;/P&gt;&lt;P&gt;    node-node_key = '111'.&lt;/P&gt;&lt;P&gt;    node-relatkey = '001'.&lt;/P&gt;&lt;P&gt;    node-relatship = cl_gui_column_tree=&amp;gt;relat_first_child.&lt;/P&gt;&lt;P&gt;    node-isfolder = 'X'.&lt;/P&gt;&lt;P&gt;    node-expander = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND node TO node_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR item.&lt;/P&gt;&lt;P&gt;    item-node_key = '111'.&lt;/P&gt;&lt;P&gt;    item-item_name = 'COLUMN1'.&lt;/P&gt;&lt;P&gt;    item-class = cl_gui_column_tree=&amp;gt;item_class_text.&lt;/P&gt;&lt;P&gt;    item-text ='Dict.Structures'.&lt;/P&gt;&lt;P&gt;    APPEND item TO item_table.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Types&lt;/P&gt;&lt;P&gt;  READ TABLE i_objlist WITH KEY type = 'Y'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CLEAR node.&lt;/P&gt;&lt;P&gt;    node-node_key = '112'.&lt;/P&gt;&lt;P&gt;    node-relatkey = '001'.&lt;/P&gt;&lt;P&gt;    node-relatship = cl_gui_column_tree=&amp;gt;relat_first_child.&lt;/P&gt;&lt;P&gt;    node-isfolder = 'X'.&lt;/P&gt;&lt;P&gt;    node-expander = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND node TO node_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR item.&lt;/P&gt;&lt;P&gt;    item-node_key = '112'.&lt;/P&gt;&lt;P&gt;    item-item_name = 'COLUMN1'.&lt;/P&gt;&lt;P&gt;    item-class = cl_gui_column_tree=&amp;gt;item_class_text.&lt;/P&gt;&lt;P&gt;    item-text ='Types'.&lt;/P&gt;&lt;P&gt;    APPEND item TO item_table.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Fields&lt;/P&gt;&lt;P&gt;  READ TABLE i_objlist WITH KEY type = 'D'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CLEAR node.&lt;/P&gt;&lt;P&gt;    node-node_key = '113'.&lt;/P&gt;&lt;P&gt;    node-relatkey = '001'.&lt;/P&gt;&lt;P&gt;    node-relatship = cl_gui_column_tree=&amp;gt;relat_first_child.&lt;/P&gt;&lt;P&gt;    node-isfolder = 'X'.&lt;/P&gt;&lt;P&gt;    node-expander = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND node TO node_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR item.&lt;/P&gt;&lt;P&gt;    item-node_key = '113'.&lt;/P&gt;&lt;P&gt;    item-item_name = 'COLUMN1'.&lt;/P&gt;&lt;P&gt;    item-class = cl_gui_column_tree=&amp;gt;item_class_text.&lt;/P&gt;&lt;P&gt;    item-text ='Fields'.&lt;/P&gt;&lt;P&gt;    APPEND item TO item_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD tree-&amp;gt;add_nodes_and_items&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      node_table                     = node_table&lt;/P&gt;&lt;P&gt;      item_table                     = item_table&lt;/P&gt;&lt;P&gt;      item_table_structure_name      = 'MTREEITM'&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      failed                         = 1&lt;/P&gt;&lt;P&gt;      cntl_system_error              = 2&lt;/P&gt;&lt;P&gt;      error_in_tables                = 3&lt;/P&gt;&lt;P&gt;      dp_error                       = 4&lt;/P&gt;&lt;P&gt;      table_structure_name_not_found = 5&lt;/P&gt;&lt;P&gt;      OTHERS                         = 6.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if helpful.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Hemant&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 May 2007 12:14:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-tree-problem/m-p/2175849#M462088</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-07T12:14:14Z</dc:date>
    </item>
  </channel>
</rss>

