CL_SALV_TREE richtig refreshen

Benutzeroberflächen in SAP®-Systemen.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

CL_SALV_TREE richtig refreshen

Beitrag von Ingo (ForumUser / 19 / 9 / 0 ) » 17.03.2020 17:24
Moin moin,

mir qualmt der Schädel und bekomme folgendes Problem nicht gelöst:

Ein Dynpro mit SplitterControl hat zwei Subscreens. Nr.1 für die Selektion, Nr.2 für ein ALV-Tree (cl_salv_tree). Bei Betätigen des Buttons auf Sub1 wird der Tree korrekt gefüllt. Bei erneuter Betätigung kommen neue Werte hinzu, die alten bleiben jedoch bestehen. Ich habe es mit Abräumen der Objekte versucht sowie mit den Methoden

Code: Alles auswählen.

        TRY.
          go_salv_nodes = go_salv_tree->get_nodes( ).
          go_salv_nodes->delete_all( ).
          CATCH cx_salv_error.
          FREE go_salv_nodes.
        ENDTRY.

        TRY.
          go_salv_tree->set_data( CHANGING t_table = gt_outtab  ).
          CATCH cx_salv_no_new_data_allowed .
          CATCH cx_salv_error .
        ENDTRY.
Es bleibt immer das vorige Ergebnis mit in der Ausgabe. Jemand eine Idee? Falscher zeitpunkt? Gibt es eine andere Methode?

Danke & VG
Ingo


Re: CL_SALV_TREE richtig refreshen

Beitrag von ewx (Top Expert / 4167 / 185 / 429 ) » 17.03.2020 18:06
schau im Debugger mal in das Attribut CHILDREN des Containers. Wenn hier mehr als ein Eintrag drin steht, dann hast du den Tree mehrmals erzeugt. Der Refresh erfolgt dann evtl. nur im "unteren" Tree und den siehst du nicht, weil der neue Tree "oben drauf" liegt.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
Ingo (18.03.2020 10:58)


Re: CL_SALV_TREE richtig refreshen

Beitrag von Ingo (ForumUser / 19 / 9 / 0 ) » 18.03.2020 10:58
Hi,
Danke für Deine schnelle Hilfe. Das war ein guter Hinweis. Ich hatte tatsächlich nur den Custom_Container im PBO geprüft (ob initial) und nicht die Tree-Instanz. Es kamen hier gleich mehrere Probleme auf einmal zusammen, u.a. standen meine Subscreen-Aufrufe ganz unten im PAI. Ich habe diese nach oben geschoben und jetzt funktioniert alles wie gewünscht.

Weitere Frage: Wenn ich eine Hierarchie (Eltern-, Geschwister-, Kindknoten liegen vor) aufbauen will, gibt es da ein Tutorial für? Meine Idee ist eine While-Schleife in einer Methode, die sich mit dem Kindknoten immer wieder selbst aufruft...

Klasse, dass hier immer so schnelle geholfen wird.

Vielen Dank nochmals!
Ingo

Re: CL_SALV_TREE richtig refreshen

Beitrag von ewx (Top Expert / 4167 / 185 / 429 ) » 18.03.2020 11:43
Ingo hat geschrieben:
18.03.2020 10:58
Weitere Frage: Wenn ich eine Hierarchie (Eltern-, Geschwister-, Kindknoten liegen vor) aufbauen will, gibt es da ein Tutorial für? Meine Idee ist eine While-Schleife in einer Methode, die sich mit dem Kindknoten immer wieder selbst aufruft...
Mit einer While-Schleife kommst du m.E. nicht weit.
Die Technik nennt sich Rekursion. Ob es dazu irgendwo ein Tutorial gibt, weiß ich nicht.

Es gibt halt auch verschiedene Arten von Tree-Controls.
Wichtigster Unterschied: Hast du Knoten, bei denen die Datenstruktur weitestgehend gleich ist (CL_SALV_TREE)? Oder hast du komplett unterschiedliche Gruppen (CL_COLUMN_TREE_MODEL)?

/edit: sehe gerade, dass es ja bereits um den cl_salv_tree geht...
du brauchst eigtl. keine While-Schleife. es geht mit einem einfachen LOOP. du musst halt immer wissen, welche Daten du unter welchen übergeordneten Knoten hängen möchtest.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
Ingo (18.03.2020 16:47)


Re: CL_SALV_TREE richtig refreshen

Beitrag von Ingo (ForumUser / 19 / 9 / 0 ) » 18.03.2020 16:47
Hi, hattest recht. Manchmal sind die Ideen und Lösungsansätze viel zu schwierig gedacht in der Entstehung. Nach Blick auf die Klasse cl_salv_nodes war es dann doch nicht so schwer ;-)

Allerdings auch nur, weil ich die Anzahl der Hierarchieebenen kannte.

Danke!

PS: Wenn jemand einen Link hätte für eine generische Struktur, wäre ich sehr interessiert!

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

Massenpflege Customer
vor 4 Stunden von Steffen gelöst 2 / 3063
Klasse CL_O2_DUMMY_CLASS
vor 6 Stunden von JohnLocklay 1 / 30
Fehler bei CATCH-Abfangung
vor 6 Stunden von STDIN gelöst 5 / 374
Eclipse: ungültiges Sperr-Handle
vor 6 Stunden von deejey 2 / 24