Bei uns werden die Knotentabellen sortiert (halt nach Schlüssel der zugrundeliegenden Daten) und dann der Baum aufgebaut. Das geht gut solange keine Umsortierungen stattfinden sollen und würde kompliziert wenn zur Laufzeit neue Knoten in den Baum eingefügt werden müssen. Dann muss man irgendwie die korrekte Position des einzufügenden Knotens ermitteln oder bei "kleinen" Bäumen den Baum löschen und neu sortiert aufbauen
Falls das nicht hilft hab ich die Frage wohl nicht richtig verstanden
hast du schon richtig verstanden! Ich baue die Liste auch sortiert auf. Allerdings kann dann ein Element gelöscht und in einen anderen Tree eingefügt werden und wieder zurück.
Wenn ich das erste Element von 10 lösche und hinterher wieder einfüge, dann kommt es ans Ende.
Ich habe ja wohl auch keine Chance, einen INSERT_NODE zu machen; Es gibt nur den ADD_NODE...
Enno.
PS ich hab's nun extra so programmiert, dass ich die Daten eben nicht nachlesen muss...
ok nun habe ich das Problem richtig verstanden.
Theoretisch könnte es gehen über das Feld
TREEMCNODT-RELATKEY und TREEMCNODT-RELATSHIP. Du müsstest eben als Relatship angeben das der neue Knoten Nachbar (Konstante cl_tree_model=>relat_next_sibling) von dem Knoten der direkt davor steht sein soll und den Schlüssel des Vorherigen Knotens in den Relatkey schreiben. Dann den Knoten mit "add_node" anhängen und schauen ob das richtige passiert
Aber ich weis nicht Recht obs funktionieren würde und hab gerade zu wenig Zeit es mal auszuprobieren
Achja mir ist aufgefallen das wir mit Tree Models arbeiten das könnte das ganze nochmal verkomplizieren da ich das verhalten bei den normalen Trees nicht einschätzen kann.
das mit dem NEXT_SIBLING ist eine gute Idee
Werde ich mir mal merken.
Dann müsste ich mir beim Aufbau des Trees am besten gleich noch merken, welches Sortierkriterium zum Knoten gehört und dann müsste es recht einfach gehen. Wenns funktioniert...
Ich sach bescheid...
werde ich wohl so machen müssen...
Das mit next-sibling habe ich nicht hinbekommen.
Das Neuaufbauen wollte ich mir halt eigentlich sparen, weil ich dazu erst alle Knoten löschen muss und dann neu aufbauen und dann übergeben muss.
Und da der ALV eh nicht so dolle performant ist, wollte ich das halt umgehen.