CL_SALV_TREE für mehrere Hierarchie-Knoten

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
1 Beitrag • Seite 1 von 1
1 Beitrag Seite 1 von 1

CL_SALV_TREE für mehrere Hierarchie-Knoten

Beitrag von sapdepp (Specialist / 221 / 38 / 2 ) »
Hallo miteinander,

unter https://codezentrale.de/abap-beispiel-f ... salv_tree/ gibt es ein schönes Beispiel zu CL_SALV_TREE. Mein Problem ist, dass ich 6 Hierarchieebenen brauche, nicht nur eine. Da ich CL_SALV_TREE bisher nicht verwendet habe, sondern nur CL_GUI_COLUMN_TREE, tue ich mit den Beziehungen der ADD_NODE-Parameter related_node, relationship etc. etwas schwer. Ich möchte, dass links im Tree der Knoten A über Knoten B, B über C, C über D, D über E und E über F steht. A bis E als expandierbare Ordnersymbole, Knoten F als Text, nicht mehr expandierbar, weil letzter Knoten. Knoten A bis D sind vorexpaniert. E soll per Mausklick expandiert/collapsed werden können. Im rechten SALV-Table möchte ich zu jeder Ebene noch spezifische Daten anzeigen lassen, die ich im jeweiligen Knoten-Loop erhalte. Ich bin dicht dran, aber noch nicht da, wo ich hin will. Zurzeit sehe ich in jedem Unterknoten nochmals einen Eintrag des übergeordneten Knotens. Bitte um hilfreichen Seitenhieb. Einfaches Code-Bsp. anbei:

Code: Alles auswählen.

LOOP AT itab ASSIGNING FIELD-SYMBOL(<a>) GROUP BY <a>-spalte1 ASCENDING.

  DATA(lr_a) = gr_salv_tree->get_nodes( )->add_node( related_node   = ''
                                                     relationship   = cl_gui_column_tree=>relat_last_child
                                                     collapsed_icon = CONV #( icon_closed_folder )
                                                     expanded_icon  = CONV #( icon_open_folder )
                                                     row_style      = if_salv_c_tree_style=>intensified
                                                     text           = CONV #( <a>-spalte1 ) ).

  LOOP AT GROUP <a> ASSIGNING FIELD-SYMBOL(<b>) GROUP BY <b>-spalte2 ASCENDING.

    DATA(lr_b) = gr_salv_tree->get_nodes( )->add_node( related_node = lr_a->get_key( )
                                                       relationship = cl_gui_column_tree=>relat_last_child
                                                       collapsed_icon = CONV #( icon_closed_folder )
                                                       expanded_icon  = CONV #( icon_open_folder )
                                                       data_row     = <b>
                                                       row_style    = if_salv_c_tree_style=>intensified
                                                       text         = CONV #( <b>-spalte2 ) ).

    LOOP AT GROUP <b> ASSIGNING FIELD-SYMBOL(<c>) GROUP BY <c>-spalte3 ASCENDING.

      DATA(lr_c) = gr_salv_tree->get_nodes( )->add_node( related_node = lr_b->get_key( )
                                                         relationship = cl_gui_column_tree=>relat_last_child
                                                         collapsed_icon = CONV #( icon_closed_folder )
                                                         expanded_icon  = CONV #( icon_open_folder )
                                                         data_row     = <c>
                                                         row_style    = if_salv_c_tree_style=>intensified
                                                         text         = CONV #( <c>-spalte3 ) ).

      LOOP AT GROUP <c> ASSIGNING FIELD-SYMBOL(<d>) GROUP BY <d>-spalte4 ASCENDING.

        DATA(lr_d) = gr_salv_tree->get_nodes( )->add_node( related_node = lr_c->get_key( )
                                                           relationship = cl_gui_column_tree=>relat_last_child
                                                           collapsed_icon = CONV #( icon_closed_folder )
                                                           expanded_icon  = CONV #( icon_open_folder )
                                                           data_row     = <d>
                                                           row_style    = if_salv_c_tree_style=>intensified
                                                           text         = CONV #( <d>-spalte4 ) ).

        LOOP AT GROUP <d> ASSIGNING FIELD-SYMBOL(<e>) GROUP BY <e>-spalte5 ASCENDING.

          DATA(lr_e) = gr_salv_tree->get_nodes( )->add_node( related_node = lr_d->get_key( )
                                                             relationship = cl_gui_column_tree=>relat_last_child
                                                             collapsed_icon = CONV #( icon_closed_folder )
                                                             expanded_icon  = CONV #( icon_open_folder )
                                                             data_row     = <e>
                                                             row_style    = if_salv_c_tree_style=>intensified
                                                             text         = CONV #( <e>-spalte5 ) ).

          LOOP AT GROUP <e> ASSIGNING FIELD-SYMBOL(<f>) GROUP BY <f>-spalte6 ASCENDING.

            DATA(lr_f) = gr_salv_tree->get_nodes( )->add_node( related_node = lr_e->get_key( )
                                                               relationship = cl_gui_column_tree=>relat_last_child
                                                               data_row     = <f>
                                                               row_style    = if_salv_c_tree_style=>intensified
                                                               text         = CONV #( <f>-spalte6 ) ).


          ENDLOOP. "<f>
        ENDLOOP. "<e>
      ENDLOOP. "<d>
    ENDLOOP. "<c>
  ENDLOOP. "<b>
ENDLOOP. "<a>
Besten Dank und viele Grüße

sapdepp

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Seite 1 von 1

Vergleichbare Themen

0
Antw.
1695
Views
Ausgabe einer Hierarchie als Tree
von khb » 25.06.2015 08:59 • Verfasst in ABAP Objects®
3
Antw.
2090
Views
Problem bei der Tree-Darstellu ng einer Hierarchie
von khb » 12.10.2018 13:20 • Verfasst in ABAP® für Anfänger
4
Antw.
5946
Views
ALV Tree Knoten erstellen
von errorist » 15.09.2008 23:23 • Verfasst in ABAP® für Anfänger
1
Antw.
1638
Views
Tree mit Alphabet als Knoten
von Brush » 05.04.2006 10:17 • Verfasst in Web-Dynpro, BSP + BHTML
0
Antw.
2085
Views
Tree-Knoten aktualisieren (CL_GUI_ALV_TREE)
von intellisap » 22.10.2007 11:13 • Verfasst in ABAP Objects®

Über diesen Beitrag

sapdepp

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.