CL_GUI_ALV_TREE - Illegal Event Combination Exception Thema ist als GELÖST markiert

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

CL_GUI_ALV_TREE - Illegal Event Combination Exception

Beitrag von sersen (ForumUser / 2 / 2 / 0 ) »
Hallo liebes ABAP-Forum,

nun möchte ich auch meine Beitragsprämiere feiern :)

Folgendes Problem liegt vor:
Ich habe ein Dynpro mit 3 Docking Containern, in jedem von diesem befindet sich ein ALV-Control. Links angebracht ist ein Baum der Klasse cl_gui_alv_tree, in der Mitte und rechts davon zwei ALV-Grids.
Im Tree sind mehrere Unterbäume vorhanden in dem Sinne, als dass es mehrere Knoten gibt, deren Parentnode '&VIRTUALROOT' also der Wurzelknoten ist.
Wechselt der Anwender mittels Markierung zwischen diesen Unterbäumen, passt sich die Ausgabe in den ALV-Grids entsprechend eines durch den gerade markierten Knoten definierten Filterkriteriums an. Für dieses Verhalten ist das Event 'selection_changed' auf den Tree registriert.

Nun hatte ich vor, für eine spezifische Kategorie an hinzugefügten Blättern die Möglichkeit zu eröffnen, in die SE80 und in die die bei diesem Knoten hinterlegte Klasse abzuspringen (mittels Funktionsbaustein 'RS_TOOL_ACCESS').

Dazu wollte ich das Event 'link_clicked' auf den Baum registrieren.

Beim Ausführen des Programms tritt jedoch die Fehlemeldung 'lllegal Event Combination' auf.
Dies ist dem Umstand geschuldet, dass bei Instanziierung des Baumes der Parameter 'item_selection' für das 'selection_changed'-Event zwingend 'abap_false' sein muss. Für das 'link_clicked' (und auch andere wie 'checkbox_change') muss dies jedoch 'abap_true' sein.

Ich hoffe, dass ich gerade einfach ein Brett vorm Kopf habe und irgendwas noch fundamental falsch verstehe/ausführe, weil das wäre schon eine traurige Limitation. Die Funktion wäre echt super, sie läuft auch einwandfrei, wenn ich 'selection_changed' abstelle und 'item_selection' auf abap_true bei der Erzeugung des ALV-Treeobjekts stelle.

Das ganze ist Teil meiner Bachelorthesis und eher eine "Begeisterungsanforderung" als wirklich dringlich, interessiert an einer Lösung/einem Workaround wäre ich trotzdem.

Vielen Dank !


Re: CL_GUI_ALV_TREE - Illegal Event Combination Exception

Beitrag von a-dead-trousers (Top Expert / 3758 / 142 / 983 ) »
Kurz gesagt:
SAP hat diese Möglichkeit ausgeschlossen und mir ist nichts bekannt wie man das umgehen könnte.

Das Problem hier ist (vermutlich), dass auch ein Link_Click im Grunde einen Selection_Changed auslösen kann und dass das Event-Handling im Control-Framework nicht dafür ausgelegt ist zwei Events gleichzeitig zu verarbeiten. Es gibt diesbezüglich übrigens auch in anderen Controls ähnliche Ausnahmen was das Registrieren von Ereignissen betrifft.

Ein Workaround wäre, alles auf den Link_Click zu legen. Man kann dann im Handler entscheiden, wenn der Klick auf Spalte (= Item) 1 erfolgt ist, dann erfolgt der Wechsel in der ALV-Grid Anzeige und bei Klick auf Spalte 2 erfolgt der Aufruf der Workbench.

lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
sersen

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.07
Basis: 7.40

Re: CL_GUI_ALV_TREE - Illegal Event Combination Exception

Beitrag von sersen (ForumUser / 2 / 2 / 0 ) »
Vielen Dank für die Antwort ! Arbeite jetzt in der Hierarchiespalte mit Links und Buttons

Re: CL_GUI_ALV_TREE - Illegal Event Combination Exception

Beitrag von black_adept (Top Expert / 3618 / 77 / 740 ) »
Alternativ könnte man auch mit rechtem und linken Mausklick arbeiten. Man kann neben Event SELECTION_CHANGED auch die Events NODE_CONTEXT_MENU_REQUEST und NODE_CONTEXT_MENU_SELECTED registrieren und diese zu alternativen Schandtaten verwenden . Sieht schick aus, wenn man abhängig vom Nodekey diverse Möglichkeiten via Kontextmenü anbieten kann.

P.S. Es gibt die Kontextmenüs auch für die Items, wenn man da dann noch genauer sein möchte.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

Event Column Tree
von Lainer » 07.02.2007 20:18
Event (Doppelklick) im Tree auslösen
von easy123 » 13.08.2013 11:45
single click event im tree control (cl_gui_list_tree)?
von ernst » 21.08.2007 17:08
ALV TREE | Positionsänderung nach Double Click Event
von Lukas R. » 17.10.2017 10:07