<?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 Tree Display in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/tree-display/m-p/3377986#M811098</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 want a simple program that will display the contents of an internal table in a tree format.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanx &lt;/P&gt;&lt;P&gt;Amrita&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 22 Feb 2008 09:23:49 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-02-22T09:23:49Z</dc:date>
    <item>
      <title>Tree Display</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tree-display/m-p/3377986#M811098</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 want a simple program that will display the contents of an internal table in a tree format.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanx &lt;/P&gt;&lt;P&gt;Amrita&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Feb 2008 09:23:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tree-display/m-p/3377986#M811098</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-22T09:23:49Z</dc:date>
    </item>
    <item>
      <title>Re: Tree Display</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tree-display/m-p/3377987#M811099</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A href="http://www.sapdev.co.uk/reporting/alv/alvtree/simpletree_basic.htm" target="test_blank"&gt;http://www.sapdev.co.uk/reporting/alv/alvtree/simpletree_basic.htm&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Feb 2008 09:29:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tree-display/m-p/3377987#M811099</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-22T09:29:49Z</dc:date>
    </item>
    <item>
      <title>Re: Tree Display</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tree-display/m-p/3377988#M811100</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check the sample code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&amp;amp;---------------------------------------------------------------------
*&amp;amp; Report ZUS_SDN_THREE_ALV_GRIDS
*&amp;amp;
&amp;amp;---------------------------------------------------------------------
*&amp;amp;
*&amp;amp;
&amp;amp;---------------------------------------------------------------------
 
REPORT zus_sdn_three_alv_grids.
 
 
 
DATA:
gd_okcode TYPE ui_func,
*
go_docking TYPE REF TO cl_gui_docking_container,
go_splitter TYPE REF TO cl_gui_splitter_container,
go_splitter_2 TYPE REF TO cl_gui_splitter_container,
go_cell_top TYPE REF TO cl_gui_container,
go_cell_bottom TYPE REF TO cl_gui_container,
go_cell_left TYPE REF TO cl_gui_container,
go_cell_right TYPE REF TO cl_gui_container,
go_grid1 TYPE REF TO cl_gui_alv_grid,
go_grid2 TYPE REF TO cl_gui_alv_grid,
go_grid3 TYPE REF TO cl_gui_alv_grid.
 
 
DATA:
gt_knb1 TYPE STANDARD TABLE OF knb1,
gt_vbak TYPE STANDARD TABLE OF vbak,
gt_vbap TYPE STANDARD TABLE OF vbap.
 
 
 
PARAMETERS:
p_bukrs TYPE bukrs DEFAULT '1000'.
 
 
 
---------------------------------------------------------------------
 
 
CLASS lcl_eventhandler DEFINITION 
---------------------------------------------------------------------
*
---------------------------------------------------------------------
CLASS lcl_eventhandler DEFINITION.
 
PUBLIC SECTION.
CLASS-METHODS:
handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING
e_row
e_column
es_row_no
sender.
 
ENDCLASS. "lcl_eventhandler DEFINITION
 
 
 
---------------------------------------------------------------------
 
 
CLASS lcl_eventhandler IMPLEMENTATION 
---------------------------------------------------------------------
*
---------------------------------------------------------------------
CLASS lcl_eventhandler IMPLEMENTATION.
 
METHOD handle_double_click.
 
define local data 
DATA:
ls_knb1 TYPE knb1,
ls_vbak TYPE vbak,
ls_vbap TYPE vbap.
 
CASE sender.
WHEN go_grid1.
READ TABLE gt_knb1 INTO ls_knb1 INDEX e_row-index.
CHECK ( ls_knb1-kunnr IS NOT INITIAL ).
 
CALL METHOD go_grid1-&amp;gt;set_current_cell_via_id
EXPORTING
 
 
IS_ROW_ID = 
IS_COLUMN_ID = 
is_row_no = es_row_no.
 
 
Triggers PAI of the dynpro with the specified ok-code 
CALL METHOD cl_gui_cfw=&amp;gt;set_new_ok_code( 'ORDERS' ).
 
WHEN go_grid2.
READ TABLE gt_vbak INTO ls_vbak INDEX e_row-index.
CHECK ( ls_vbak-vbeln IS NOT INITIAL ).
 
CALL METHOD go_grid1-&amp;gt;set_current_cell_via_id
EXPORTING
 
 
IS_ROW_ID = 
IS_COLUMN_ID = 
is_row_no = es_row_no.
 
 
Triggers PAI of the dynpro with the specified ok-code 
CALL METHOD cl_gui_cfw=&amp;gt;set_new_ok_code( 'ORDER_DETAILS' ).
 
 
WHEN go_grid3.
READ TABLE gt_vbap INTO ls_vbap INDEX e_row-index.
CHECK ( ls_vbap-matnr IS NOT INITIAL ).
 
SET PARAMETER ID 'MAT' FIELD ls_vbap-matnr.
CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.
 
WHEN OTHERS.
RETURN.
ENDCASE.
 
 
 
 
 
ENDMETHOD. "handle_double_click
 
ENDCLASS. "lcl_eventhandler IMPLEMENTATION
 
 
 
 
START-OF-SELECTION.
 
SELECT * FROM knb1 INTO TABLE gt_knb1
WHERE bukrs = p_bukrs.
 
 
 
Create docking container 
CREATE OBJECT go_docking
EXPORTING
parent = cl_gui_container=&amp;gt;screen0
ratio = 90
EXCEPTIONS
OTHERS = 6.
IF sy-subrc 0.
 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.
 
 
 
 
Create splitter container 
CREATE OBJECT go_splitter
EXPORTING
parent = go_docking
rows = 1
columns = 2
 
NO_AUTODEF_PROGID_DYNNR = 
NAME = 
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc 0.
 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.
 
 
Get cell container 
CALL METHOD go_splitter-&amp;gt;get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = go_cell_left.
CALL METHOD go_splitter-&amp;gt;get_container
EXPORTING
row = 1
column = 2
RECEIVING
container = go_cell_right.
 
 
Create 2nd splitter container 
CREATE OBJECT go_splitter_2
EXPORTING
parent = go_cell_left
rows = 2
columns = 1
 
NO_AUTODEF_PROGID_DYNNR = 
NAME = 
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc 0.
 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.
 
 
Get cell container 
CALL METHOD go_splitter_2-&amp;gt;get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = go_cell_top.
CALL METHOD go_splitter_2-&amp;gt;get_container
EXPORTING
row = 2
column = 1
RECEIVING
container = go_cell_bottom.
 
 
Create ALV grids 
CREATE OBJECT go_grid1
EXPORTING
i_parent = go_cell_top
EXCEPTIONS
OTHERS = 5.
IF sy-subrc 0.
 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.
 
 
CREATE OBJECT go_grid2
EXPORTING
i_parent = go_cell_bottom
EXCEPTIONS
OTHERS = 5.
IF sy-subrc 0.
 
 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.
 
CREATE OBJECT go_grid3
EXPORTING
i_parent = go_cell_right
EXCEPTIONS
OTHERS = 5.
IF sy-subrc 0.
 
 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.
 
 
 
 
 
Set event handler 
SET HANDLER: lcl_eventhandler=&amp;gt;handle_double_click FOR go_grid1.
SET HANDLER: lcl_eventhandler=&amp;gt;handle_double_click FOR go_grid2.
SET HANDLER: lcl_eventhandler=&amp;gt;handle_double_click FOR go_grid3.
 
 
Display data 
CALL METHOD go_grid1-&amp;gt;set_table_for_first_display
EXPORTING
i_structure_name = 'KNB1'
CHANGING
it_outtab = gt_knb1
EXCEPTIONS
OTHERS = 4.
IF sy-subrc 0.
 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.
 
REFRESH: gt_vbak.
CALL METHOD go_grid2-&amp;gt;set_table_for_first_display
EXPORTING
i_structure_name = 'VBAK'
CHANGING
it_outtab = gt_vbak " empty !!!
EXCEPTIONS
OTHERS = 4.
IF sy-subrc 0.
 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.
 
REFRESH: gt_vbap.
CALL METHOD go_grid3-&amp;gt;set_table_for_first_display
EXPORTING
i_structure_name = 'VBAP'
CHANGING
it_outtab = gt_vbap " empty !!!
EXCEPTIONS
OTHERS = 4.
IF sy-subrc 0.
 
 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.
 
 
Link the docking container to the target dynpro 
CALL METHOD go_docking-&amp;gt;link
EXPORTING
repid = syst-repid
dynnr = '0100'
 
CONTAINER = 
EXCEPTIONS
OTHERS = 4.
IF sy-subrc 0.
 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.
 
 
NOTE: dynpro does not contain any elements 
CALL SCREEN '0100'.
 
Flow logic of dynpro: 
*
*PROCESS BEFORE OUTPUT.
 
MODULE STATUS_0100. 
**
*PROCESS AFTER INPUT.
 
MODULE USER_COMMAND_0100. 
 
END-OF-SELECTION.
 
&amp;amp;---------------------------------------------------------------------
*&amp;amp; Module STATUS_0100 OUTPUT
&amp;amp;---------------------------------------------------------------------
 
 
text 
----------------------------------------------------------------------
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS_0100'. " contains push button "ORDERS"
 
SET TITLEBAR 'xxx'. 
 
Refresh display of detail ALV list 
CALL METHOD go_grid2-&amp;gt;refresh_table_display
 
EXPORTING 
IS_STABLE = 
I_SOFT_REFRESH = 
EXCEPTIONS
OTHERS = 2.
IF sy-subrc 0.
 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.
 
 
Refresh display of detail ALV list 
CALL METHOD go_grid3-&amp;gt;refresh_table_display
 
EXPORTING 
IS_STABLE = 
I_SOFT_REFRESH = 
EXCEPTIONS
OTHERS = 2.
IF sy-subrc 0.
 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.
 
ENDMODULE. " STATUS_0100 OUTPUT
 
&amp;amp;---------------------------------------------------------------------
*&amp;amp; Module USER_COMMAND_0100 INPUT
&amp;amp;---------------------------------------------------------------------
 
text 
----------------------------------------------------------------------
MODULE user_command_0100 INPUT.
 
CASE gd_okcode.
WHEN 'BACK' OR
'END' OR
'CANC'.
SET SCREEN 0. LEAVE SCREEN.
 
 
User has pushed button "Display Orders" 
WHEN 'ORDERS'.
PERFORM customer_show_orders.
 
WHEN 'ORDER_DETAILS'.
PERFORM order_show_details.
 
WHEN OTHERS.
ENDCASE.
 
CLEAR: gd_okcode.
 
ENDMODULE. " USER_COMMAND_0100 INPUT
 
&amp;amp;---------------------------------------------------------------------
*&amp;amp; Form CUSTOMER_SHOW_ORDERS
&amp;amp;---------------------------------------------------------------------
 
text 
----------------------------------------------------------------------
 
--&amp;gt; p1 text 
&amp;lt;-- p2 text 
----------------------------------------------------------------------
FORM customer_show_orders .
 
define local data 
DATA:
ld_row TYPE i,
ls_knb1 TYPE knb1.
 
CALL METHOD go_grid1-&amp;gt;get_current_cell
IMPORTING
e_row = ld_row.
 
READ TABLE gt_knb1 INTO ls_knb1 INDEX ld_row.
CHECK ( syst-subrc = 0 ).
 
SELECT * FROM vbak INTO TABLE gt_vbak
WHERE kunnr = ls_knb1-kunnr.
 
REFRESH: gt_vbap.
 
 
 
ENDFORM. " CUSTOMER_SHOW_ORDERS
 
&amp;amp;---------------------------------------------------------------------
*&amp;amp; Form ORDER_SHOW_DETAILS
&amp;amp;---------------------------------------------------------------------
 
 
text 
----------------------------------------------------------------------
 
--&amp;gt; p1 text 
&amp;lt;-- p2 text 
----------------------------------------------------------------------
FORM order_show_details .
 
define local data 
DATA:
ld_row TYPE i,
ls_vbak TYPE vbak.
 
CALL METHOD go_grid1-&amp;gt;get_current_cell
IMPORTING
e_row = ld_row.
 
READ TABLE gt_vbak INTO ls_vbak INDEX ld_row.
CHECK ( syst-subrc = 0 ).
 
SELECT * FROM vbap INTO TABLE gt_vbap
WHERE vbeln = ls_vbak-vbeln.
 
 
ENDFORM. " ORDER_SHOW_DETAILS.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Feb 2008 09:41:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tree-display/m-p/3377988#M811100</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-22T09:41:46Z</dc:date>
    </item>
    <item>
      <title>Re: Tree Display</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tree-display/m-p/3377989#M811101</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;good&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you can't display the internal table data in a tree format in the classical report, for that you have to use the alv report which will help you to display your internal table data in a tree format.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;mrutyun^&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Feb 2008 09:44:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tree-display/m-p/3377989#M811101</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-22T09:44:18Z</dc:date>
    </item>
    <item>
      <title>Re: Tree Display</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tree-display/m-p/3377990#M811102</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try this one...It uses OO ALV Tree...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report  ZDUMMY_ATG_2
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
REPORT zdummy_atg_2.

TYPES: BEGIN OF ty_header,
       carrid TYPE spfli-carrid,
       END OF ty_header.

TYPES: BEGIN OF ty_scarr,
       carrid TYPE scarr-carrid,
       carrname TYPE scarr-carrname,
       END OF ty_scarr.

TYPES: BEGIN OF ty_tree,
       carrid TYPE spfli-carrid,
       connid TYPE spfli-connid,
       countryfr TYPE spfli-countryfr,
       cityfrom TYPE spfli-cityfrom,
       airpfrom TYPE spfli-airpfrom,
       countryto TYPE spfli-countryto,
       cityto TYPE spfli-cityto,
       END OF ty_tree.

DATA: t_spfli TYPE STANDARD TABLE OF spfli,
      w_spfli LIKE LINE OF t_spfli,
      lt_f4 TYPE lvc_t_f4 WITH HEADER LINE,
      return_tab TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE,
      t_stable TYPE STANDARD TABLE OF lvc_s_stbl WITH HEADER LINE,
      t_header TYPE STANDARD TABLE OF ty_header,
      t_scarr TYPE STANDARD TABLE OF ty_scarr,
      t_tree TYPE STANDARD TABLE OF ty_tree WITH HEADER LINE.

DATA: g_alv_tree TYPE REF TO cl_gui_alv_tree,
      g_custom_container TYPE REF TO cl_gui_custom_container,
      gs_fieldcat TYPE lvc_s_fcat,
      gt_fieldcat_tree TYPE lvc_t_fcat,
      l_hierarchy_header TYPE treev_hhdr,
      it_node_key TYPE lvc_t_nkey,
      w_index TYPE sy-tabix.

DATA: ok_code LIKE sy-ucomm,
      gt_fieldcat TYPE lvc_t_fcat.

FIELD-SYMBOLS: &amp;lt;fs_spfli&amp;gt; LIKE LINE OF t_spfli,
               &amp;lt;fs_header&amp;gt; LIKE LINE OF t_header,
               &amp;lt;fs_scarr&amp;gt; LIKE LINE OF t_scarr.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      START-OF-SELECTION                                             *
*&amp;amp;---------------------------------------------------------------------*
START-OF-SELECTION.
  PERFORM cargar_datos.
  PERFORM init_tree.

  CALL SCREEN 0100.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  CARGAR_DATOS                                             *
*&amp;amp;---------------------------------------------------------------------*
FORM cargar_datos.

  SELECT mandt carrid connid countryfr cityfrom
         airpfrom countryto cityto airpto
         fltime deptime arrtime distance
         distid fltype period
  INTO TABLE t_spfli
  FROM spfli.

  SELECT carrid carrname
  INTO TABLE t_scarr
  FROM scarr
  FOR ALL ENTRIES IN t_spfli
  WHERE carrid EQ t_spfli-carrid.

  DELETE ADJACENT DUPLICATES FROM t_scarr
  COMPARING carrid.

  LOOP AT t_scarr ASSIGNING &amp;lt;fs_scarr&amp;gt;.
    APPEND INITIAL LINE TO t_header
    ASSIGNING &amp;lt;fs_header&amp;gt;.
    MOVE &amp;lt;fs_scarr&amp;gt; TO &amp;lt;fs_header&amp;gt;.
  ENDLOOP.

ENDFORM.                    " CARGAR_DATOS

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  STATUS_0100  OUTPUT                                    *
*&amp;amp;---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'MAIN_STATUS'.
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_0100  OUTPUT

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Module  USER_COMMAND_0100  INPUT                               *
*&amp;amp;---------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  ok_code = sy-ucomm.

  CASE ok_code.
    WHEN 'BACK' OR 'STOP' OR 'CANCEL'.
      SET SCREEN 0.
      LEAVE SCREEN.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT

*---------------------------------------------------------------------*
*       FORM init_tree                                                *
*---------------------------------------------------------------------*
FORM init_tree.

  DATA: l_tree_container_name(30) TYPE c.

  l_tree_container_name = 'CUSTOM_ALV'.

  CREATE OBJECT g_custom_container
    EXPORTING
      container_name              = l_tree_container_name
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      create_error                = 3
      lifetime_error              = 4
      lifetime_dynpro_dynpro_link = 5.

  CREATE OBJECT g_alv_tree
    EXPORTING
      parent                      = g_custom_container
      node_selection_mode         = cl_gui_column_tree=&amp;gt;node_sel_mode_single
      item_selection              = ''
      no_html_header              = 'X'
      no_toolbar                  = ''
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      create_error                = 3
      lifetime_error              = 4
      illegal_node_selection_mode = 5
      failed                      = 6
      illegal_column_name         = 7.

  PERFORM fill_catalog_tree.
  PERFORM build_hierarchy_header CHANGING l_hierarchy_header.

  CALL METHOD g_alv_tree-&amp;gt;set_table_for_first_display
    EXPORTING
      is_hierarchy_header = l_hierarchy_header
    CHANGING
      it_outtab           = t_tree[]
      it_fieldcatalog     = gt_fieldcat_tree.

  PERFORM create_hierarchy.

ENDFORM.                    "INIT_TREE

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  FILL_CATALOG_TREE                                        *
*&amp;amp;---------------------------------------------------------------------*
FORM fill_catalog_tree.

  DATA: gs_fieldcat TYPE lvc_s_fcat.

  CLEAR gs_fieldcat.
  gs_fieldcat-col_pos   = 1.
  gs_fieldcat-fieldname = 'CARRID'.
  gs_fieldcat-scrtext_s = 'Compañía'.
  gs_fieldcat-tabname   = 'T_SPFLI'.
  gs_fieldcat-edit      = 'X'.
  gs_fieldcat-f4availabl = 'X'.
  gs_fieldcat-outputlen = '8'.
  APPEND gs_fieldcat TO gt_fieldcat_tree.

  CLEAR gs_fieldcat.
  gs_fieldcat-col_pos   = 2.
  gs_fieldcat-fieldname = 'CONNID'.
  gs_fieldcat-scrtext_s = 'Conexión'.
  gs_fieldcat-tabname   = 'T_SPFLI'.
  gs_fieldcat-edit      = 'X'.
  gs_fieldcat-outputlen = '8'.
  APPEND gs_fieldcat TO gt_fieldcat_tree.

  CLEAR gs_fieldcat.
  gs_fieldcat-col_pos   = 3.
  gs_fieldcat-fieldname = 'COUNTRYFR'.
  gs_fieldcat-scrtext_s = 'País'.
  gs_fieldcat-tabname   = 'T_SPFLI'.
  gs_fieldcat-edit      = 'X'.
  gs_fieldcat-outputlen = '4'.
  APPEND gs_fieldcat TO gt_fieldcat_tree.

  CLEAR gs_fieldcat.
  gs_fieldcat-col_pos   = 4.
  gs_fieldcat-fieldname = 'CITYFROM'.
  gs_fieldcat-scrtext_s = 'Ciudad Salida'.
  gs_fieldcat-tabname   = 'T_SPFLI'.
  gs_fieldcat-edit      = space.
  gs_fieldcat-outputlen = '20'.
  APPEND gs_fieldcat TO gt_fieldcat_tree.

  CLEAR gs_fieldcat.
  gs_fieldcat-col_pos   = 5.
  gs_fieldcat-fieldname = 'AIRPFROM'.
  gs_fieldcat-scrtext_s = 'Arp. Salida'.
  gs_fieldcat-tabname   = 'T_SPFLI'.
  gs_fieldcat-edit      = 'X'.
  gs_fieldcat-outputlen = '10'.
  APPEND gs_fieldcat TO gt_fieldcat_tree.

  CLEAR gs_fieldcat.
  gs_fieldcat-col_pos   = 6.
  gs_fieldcat-fieldname = 'COUNTRYTO'.
  gs_fieldcat-scrtext_s = 'País'.
  gs_fieldcat-tabname   = 'T_SPFLI'.
  gs_fieldcat-edit      = 'X'.
  gs_fieldcat-outputlen = '4'.
  APPEND gs_fieldcat TO gt_fieldcat_tree.

  CLEAR gs_fieldcat.
  gs_fieldcat-col_pos   = 7.
  gs_fieldcat-fieldname = 'CITYTO'.
  gs_fieldcat-scrtext_s = 'Ciudad Llegada'.
  gs_fieldcat-tabname   = 'T_SPFLI'.
  gs_fieldcat-edit      = space.
  gs_fieldcat-outputlen = '20'.
  APPEND gs_fieldcat TO gt_fieldcat_tree.

ENDFORM.                    " FILL_CATALOG_TREE

*---------------------------------------------------------------------*
*       FORM build_hierarchy_header                                   *
*---------------------------------------------------------------------*
FORM build_hierarchy_header CHANGING
                               p_hierarchy_header TYPE treev_hhdr.

  CLEAR p_hierarchy_header.
  p_hierarchy_header-heading = 'Código'(300).
  p_hierarchy_header-width = 60.
  p_hierarchy_header-width_pix = ' '.

ENDFORM.                    "BUILD_HIERARCHY_HEADER

*---------------------------------------------------------------------*
*       FORM create_hierarchy                                         *
*---------------------------------------------------------------------*
FORM create_hierarchy.

  DATA: l_root_key TYPE lvc_nkey,
        l_next_key TYPE lvc_nkey,
        l_last_key TYPE lvc_nkey,
        header TYPE string,
        w_menge_text(13) TYPE c.

  CLEAR l_root_key.

  LOOP AT t_header ASSIGNING &amp;lt;fs_header&amp;gt;.
    READ TABLE t_scarr WITH KEY carrid = &amp;lt;fs_header&amp;gt;-carrid
    ASSIGNING &amp;lt;fs_scarr&amp;gt;.
    IF sy-subrc EQ 0.
      header = &amp;lt;fs_scarr&amp;gt;-carrname.
    ENDIF.
    CLEAR l_root_key.
    CLEAR l_next_key.
    PERFORM add_node USING header l_root_key
                     CHANGING l_next_key.
    LOOP AT t_spfli ASSIGNING &amp;lt;fs_spfli&amp;gt;
    WHERE carrid EQ &amp;lt;fs_header&amp;gt;-carrid.

      MOVE-CORRESPONDING &amp;lt;fs_spfli&amp;gt; TO t_tree.

      PERFORM add_leaf USING t_tree l_next_key
                       CHANGING l_last_key.
    ENDLOOP.
  ENDLOOP.

  CALL METHOD g_alv_tree-&amp;gt;frontend_update.

ENDFORM.                    "CREATE_HIERARCHY

*---------------------------------------------------------------------*
*       FORM ADD_NODE                                                 *
*---------------------------------------------------------------------*
FORM add_node USING l_name l_root_key
              CHANGING l_next_key.

  DATA: l_node_text TYPE lvc_value,
        ls_tree TYPE ty_tree.

  l_node_text =  l_name.
  CALL METHOD g_alv_tree-&amp;gt;add_node
    EXPORTING
      i_relat_node_key = l_root_key
      i_relationship   = cl_gui_column_tree=&amp;gt;relat_last_child
      i_node_text      = l_node_text
      is_outtab_line   = ls_tree
    IMPORTING
      e_new_node_key   = l_next_key.

ENDFORM.                    "ADD_NODE

*---------------------------------------------------------------------*
*       FORM ADD_LEAF                                                 *
*---------------------------------------------------------------------*
FORM add_leaf USING l_tree TYPE ty_tree
                    l_next_key
              CHANGING l_last_key.

  CALL METHOD g_alv_tree-&amp;gt;add_node
    EXPORTING
      i_relat_node_key = l_next_key
      i_relationship   = cl_gui_column_tree=&amp;gt;relat_last_child
      is_outtab_line   = t_tree
    IMPORTING
      e_new_node_key   = l_last_key.

ENDFORM.                    "ADD_LEAF
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Greetings,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Blag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Feb 2008 20:48:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tree-display/m-p/3377990#M811102</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-22T20:48:48Z</dc:date>
    </item>
  </channel>
</rss>

