ALV Tree expand/collapse nodes

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

ALV Tree expand/collapse nodes

Beitrag von Neuling_20 (ForumUser / 10 / 2 / 0 ) »
Hallo *,

in meinem ALV Tree möchte ich gerne die Unterknoten auf bzw. zuklappen lassen. Das geht einzeln mit den Methoden "collapse_all_nodes" und "expand_nodes".

Gibt es eine Möglichkeit dies zusammenzufassen? Sprich, man hat einen Button der auf -und zuklappt, je nachdem ob der Knoten gerade offen bzw. geschlossen ist.

Finde hierzu weder Methoden noch im Internet Informationen.

Grüße
Neuling_20

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


Re: ALV Tree expand/collapse nodes

Beitrag von bliss (ForumUser / 66 / 2 / 6 ) »
Nur mal als Anregung: Es müsste ein Attribut geben, wo gespeichert ist, ob der Knoten gerade collapsed oder expanded ist. Notfalls könntest du in jeder Zeile eine eigene Spalte für diesen Wert speichern. Und dann eben per IF-Abfrage je nach Wert entweder collapse oder expand ausführen.

Ich habe auch mal einen ALV-Tree mit CL_SALV_HIERSEQ_TABLE enwickelt und da habe ich das Problem nicht. Ich habe einen Button/Symbol in jeder Zeile, der sieht aus wie der Umriss eines Ordners mit einem + oder - drin. Und damit kann ich "toggeln". Ich sehe hier im Code Dinge wie

Code: Alles auswählen.

lr_level = gr_hierseq->get_level.( 1 )
lr_level->set_items_expanded( ).
danach kannst du mal googlen.
Gruß
bliss
.|.. .. ...| . .|.. ||| |. ||. .| |. |.. .||. .|. ||| ... .||. . .|.

Ich bin Anfänger und meine Tipps sind mit Vorsicht zu genießen.

Re: ALV Tree expand/collapse nodes

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
hi!

Versuchs mit GET_EXPANDED_NODES.
Damit erhältst du eine Liste aller Knoten die im Moment "offen" sind.
Diese musst du dann nur noch auf deinen aktuellen Knoten abfragen und dann entsprechend das EXPAND_NODE oder COLLAPSE_SUBTREE durchführen.

lg ADT

P.S.: Ich empfehle anstatt der CL_TREE_CONTROL und ihrer Subklassen bzw. CL_ALV_TREE Klasse, die CL_TREE_MODEL Klassen bzw. eine ihrer Subklassen zu verwenden.
DIe Modell Klassen sind um einiges flexibler. Sie können Fehler im Aufbau des Tree sofort erkennen und ggbf. durch eine Meldung verständlich darstellen, anstatt sich durch einen nichtssagenden Kurzdump zu verabschieden. Außerdem darf hier der Knotenname ein String sein und so lassen sich die Bezeichner hierarchisch verwalten. z.B. ist der Knoten TREE_CUSTOMER_132_BILL_52 ein Unterknoten von TREE_CUSTOMER_132 usw.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ALV Tree expand/collapse nodes

Beitrag von Neuling_20 (ForumUser / 10 / 2 / 0 ) »
Hi,

vielen Danke erstmal für die Antworten.
Habe es mit dem Lösungsvorschlage von "a-dead-trousers" versucht.

Beim ersten Durchlauf ist die Tabelle leer und somit wird der expand angestoßen. Beim erneuten drücken jedoch (jetzt sind Knoten offen) erkennt GET_EXPANDED_NODES diese nicht und bleibt leer. Wie kann das sein?

Anbei mein Coding:

Code: Alles auswählen.

DATA: lt_expanded_nodes TYPE lvc_t_nkey.

  CALL METHOD tree->get_expanded_nodes
    CHANGING
      ct_expanded_nodes = lt_expanded_nodes
    EXCEPTIONS
      cntl_system_error = 1
      dp_error          = 2
      failed            = 3
      OTHERS            = 4.
  IF sy-subrc <> 0.
    "Message
  ENDIF.

Code: Alles auswählen.

IF lt_expanded_nodes IS INITIAL.
    CALL METHOD tree->expand_node
      EXPORTING
        i_node_key          = gv_relat
*       i_level_count       = 1
*       i_expand_subtree    =
      EXCEPTIONS
        failed              = 1
        illegal_level_count = 2
        cntl_system_error   = 3
        node_not_found      = 4
        cannot_expand_leaf  = 5
        OTHERS              = 6.
    IF sy-subrc <> 0.
      " Message
    ENDIF.
  ELSE.
    CALL METHOD tree->collapse_all_nodes
      EXCEPTIONS
        failed            = 1
        cntl_system_error = 2
        OTHERS            = 3.
    IF sy-subrc <> 0.
      " Message
    ENDIF.

Viele Grüße
Neuling_20

Re: ALV Tree expand/collapse nodes

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Seltsam. Wenn man sich das Coding durchschaut sollten die Daten eigentlich direkt vom Control und ohne interne Pufferung ermittelt werden.
Versuch mal nach dem GET_EXPANDED_NODES die Methode CL_GUI_CFW=>FLUSH aufzurufen und schau ob dann was in der Tabelle drinnensteht.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ALV Tree expand/collapse nodes

Beitrag von Neuling_20 (ForumUser / 10 / 2 / 0 ) »
Hi,

funktioniert auch nicht. Beim erneuten Ausführen des Buttons (Knoten offen) ist die Tabelle schon leer bevor man überhaupt get_expanded_nodes aufruft. Das wäre ja nicht so schlimm,wenn er sich die Knoten dann neu zieht. Anscheinend erkennt er aber diese nicht als "offen".

Grüße
Neuling_20

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1907
Views
ALV-Tree Expand nodes
von dexter » 27.02.2006 10:33 • Verfasst in ABAP Objects®
3
Antw.
1698
Views
REUSE_ALV_GRID_DISPLAY_LVC mit Expand/Collapse-Funktionalität
von sapdepp » 15.05.2020 11:11 • Verfasst in ABAP Objects®
0
Antw.
947
Views
GUI-Status blockiert EXPAND Funktion
von Tommy Nightmare » 28.06.2019 09:41 • Verfasst in ABAP Objects®
1
Antw.
2565
Views
cl_gui_alv_tree icons der nodes ändern
von abapz » 31.03.2015 12:58 • Verfasst in ABAP® für Anfänger
1
Antw.
951
Views
Verschiedene Icons für Nodes in Alv_Tree
von Lbyte » 31.01.2018 12:47 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 6 Stunden von Bright4.5 1 / 137
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1777
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8379