Kann es sein, dass im Tree-Modell keine
Methoden für das Verschieben bzw. Umhängen von
Nodes existieren ?
ADD_NODE & DELETE_SUBTREE können doch nicht alles sein, oder ?
Hi Norbert,
als referenz zu Drag und drop kann ich dir den report SIMPLE_TREE_DRAG_DROP_DEMOCL1 empfehlen.
Die Treeklassen ( in diesem Beispiel CL_GUI_SIMPLE_TREE) haben folgende ereignisse:
ON_DRAG
ON_DRAG_MULTIPLE
ON_DROP_COMPLETE
ON_DROP_COMPLETE_MULTIPLE
Die kannst du in einer eigenen klasse behandeln. Du erstellst dir also eine lokale klasse die die ereignisse abfängt.
das Beispiel ist ziemlich gut beschrieben ich würde dir raten dir besonders das include SIMPLE_TREE_DRAG_DROP_DEMOCL1 anzuschauen.
aber im Report ist auch alles mit ADD/DELETE ausprogrammiert.
Wenn man keine grossartige Knotenhierarchie hat, ist es leicht, einen Knoten zu löschen und umzuhängen.
Aber bei Teilbäumen wird das schon aufwändiger.
Ich dachta da an ein "tree->move_node"
Zudem möchte ich das Umhängen auf Grund organisatorischer Änderungen & Berechnungen automatisch durchführen und nicht per D&D...
Danke trotzdem
Norbert
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Hallo Norbert,
es gibt beim Tree-Model Deine gewüschte Methode tree->move_node
Allerdings findest Du diese (wie viele weitere) in der Superklasse CL_TREE_MODEL.
(Die Methode wird natürlich vererbt, nur findet man sie mit Rel. 46c nicht so einfach)
Hallo Norbert,
ja die Methode MOVE_NODE der Klasse ...TREE_MODEL hängt auch einen Teilbaum um.
Denn der Knoten bekommt nur eine neue Relationship zu einem anderen Knoten.
Wirklich schade, dass sowas beim ALV-Tree nicht möglich ist.
Eine Idee wäre evtl. noch :
Eine eigene Klasse anlegen (geerbt von CL_GUI_ALV_TREE)
und versuchen, sowas selbst zu implementieren.
(Dann kann man wenigstens auf Attribute und Methoden
im PROTECTED-Bereich zugreifen)