Habe in einem Column Tree eine Spalte in der meine Elemente angezeigt werden.
In jeder Zeile, auch im Knoten, befindet sich eine Checkbox.
Ich möchte nun, dass wenn die Checkbox eines Knoten selektiert wird, auch die Kinder dieses Knotens selektiert werden. Ist das möglich?
Zudem frage ich mich auch wie es möglich ist die Zeile auslesen zu lassen, bei der die Checkbox ausgewählt wurde, um das Element dann anschließend in eine Tabelle zu speichern.
Ich bedanke mich im Vorraus vielmals für die Hilfe.
Viele Grüße
Samy
Du brauchst get_outline_tab auch nicht.
In deinem Fall müsstest du die Änderung in der ITAB vornehmen und dann die Anzeige aktualiseren können.
Im schlechtesten Fall muss du die "Unter-Zeilen" ermitteln, die es betrifft und den Knoten im Tree separat ändern.
Registriere den Event CHECKBOX_CHANGE des Column Tree.
Damit hast dann bei Änderung den Knoten und auch das zugehörige Item im Tree.
Dann fragst du auf deine zwischengespeicherten(!) Tabellen NODES und ITEMS ab und änderst entsprechend der Hierarchie (aus NODES) die Checkboxen (in ITEMS).
Wenn sich die Checkbox dann im Vergleich geändert hat, kannst du mit der Methode ITEM_SET_CHOSEN schnell das Item im Tree direkt ändern.
Wenn es mehrere Einträge werden kann man aus Performancegründen auch mit der Methode UPDATE_NODES_AND_ITEMS mehrere ITEMS auf einmal ändern.
Sofern du mit CL_GUI_COLUMN_TREE arbeitest würde ich dir den Umstieg auf CL_COLUMN_TREE_MODEL empfehlen, da hier der Knotenname ein String ist und sich die Hierarchie so viel besser abbilden lässt ('HEADER_ITEM_0001', 'HEADER_ITEM_0002', usw.). Weiters muss man die "Struktur" des Items nicht in Klartext angeben, da sie vom Model fix vorgegeben wird und es damit weniger fehleranfällig ist. Auch gibt dir diese Klasse eine verständliche Meldung auf dem Bildschirm aus, wenn man bei den Knoten/Items irgendwelche Fehler eingebaut hat (z.b.: "Der abhängige Knoten XYZ exisitert nicht") und nicht einfach einen Kurzdump ala "Fehler im Control".
lg ADT
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.
Man muss nur die Tabelle item_table nach dem node_key durchsuchen, dann erhält man zum einem den Text als auch die Kinder- bzw. den Vaterknoten.
Mit der Methode item_set_chosen kann man die Kinder entschprechend selektieren lassen.