Klasse cl_gui_alv_tree

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

Klasse cl_gui_alv_tree

Beitrag von mike81503 (ForumUser / 35 / 0 / 0 ) »
Hallo Leute,

ich habe einen Tree, bei dem die Blätter per Checkbox markiert werden können. In der Methode on_checkbox_change funktioniert das ganze folgendermaßen:

DATA: lv_text TYPE lvc_value.
DATA: lt_item_layout TYPE lvc_t_layi.
DATA: ls_node_layout TYPE lvc_s_layn.


CALL METHOD g_alv_tree->get_outtab_line
EXPORTING
i_node_key = node_key
IMPORTING
e_outtab_line = wa_outtab
e_node_text = lv_text
et_item_layout = lt_item_layout
es_node_layout = ls_node_layout.

wa_outtab-box = checked.

CALL METHOD g_alv_tree->change_node
EXPORTING
i_node_key = node_key
i_outtab_line = wa_outtab.


Der Frontend wird entsprechend auch aktualisiert. Rufe ich die Methode get_checked_items auf, bekomme ich alle markierten Knoten zurück.

Jetzt habe ich noch eine Toolbar-Funktion 'Alle markieren', bei der ich alle Blätter ermittle und diese zwei Methoden (s.o.) anwende. Allerdings wird weder der Frontend aktualisiert, noch bekomme ich die Knoten beim Aufruf der Methode get_checked_items zurückgeliefert. Was mache ich falsch bzw. was läuft hier anders als bei dem Event on_checkbox_change ??? Danke und Gruss

Michael

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von tom (ForumUser / 78 / 0 / 0 ) »
Hi,

hast Du schon mit der Methode FLUSH ausprobiert?

Gruss, tom

Beitrag von mike81503 (ForumUser / 35 / 0 / 0 ) »
Hallo Tom,

ja das hatte ich ausprobiert. Mittlerweile ist das Problem gelöst. Das Event on_checkbox_change macht etwas mehr (leider nirgends dokumentiert - könnte man vielleicht durch System-Debugging rausbekommen). Ich bin anders draufgekommen.
Die Lösung sieht folgendermassen aus:

CALL METHOD g_alv_tree->get_outtab_line
EXPORTING
i_node_key = leaf_node_key
IMPORTING
e_outtab_line = wa_outtab
e_node_text = lv_text
et_item_layout = lt_item_layout
es_node_layout = ls_node_layout.

wa_outtab-box = p_checked. " 'X' oder SPACE

REFRESH lt_item_layout2.

* layout structure is different !!!
LOOP AT lt_item_layout INTO wa_item_layout.

CLEAR wa_item_layout2.
MOVE-CORRESPONDING wa_item_layout TO wa_item_layout2.
wa_item_layout2-chosen = p_checked.
wa_item_layout2-u_chosen = 'X'. " Update Flag

APPEND wa_item_layout2 TO lt_item_layout2.

ENDLOOP.

* change node with new layout for item
CALL METHOD g_alv_tree->change_node
EXPORTING
i_node_key = leaf_node_key
i_outtab_line = wa_outtab
it_item_layout = lt_item_layout2.


Während beim event diese geänderten Item-Layout Infos erzeugt und übergeben werden, muss man sie ohne Event selbst erzeugen. Blöderweise sind die Strukturen der Tabelle it_item_layout in den Methoden auch noch unterschiedlich (deshalb das Mapping).

Zum Schluss dann noch folgender Aufruf:

* send updatet tree information to frontend
CALL METHOD g_alv_tree->frontend_update.

und die Welt ist in Ordnung.

Danke trotzdem für Deine Antwort.

Gruss Michael

Problem beim Selektieren im Tree

Beitrag von Matze134 (ForumUser / 1 / 0 / 0 ) »
Ich habe eine "Alles Markieren" funktion wie oben beschrieben in mein Programm eingebaut. Jetzt habe ich da aber noch ein paar Problem zu denen ich für jede Hilfe dankbar wäre.

1. Die Funktion alle markieren funktioniert nur, wenn alle Knoten noch nicht geöffnet wurden. Kann ich da was machen, damit es auch bei geöffneten Knoten funktioniert? Im Moment wird ein Dump erzeugt.

2. Ich habe versucht die gleichen Methoden für ein "Alle deselektieren" Button zu verwenden. Habe dabei die CHOSE-Parameter auf initial zurück gesetzt und danach den Frontendupdate gemacht. Leider leert er die Chackboxen in meinem Tree nicht. Kann mir jemand einen Tip zum deselektieren geben?

Danke,
Matze

Seite 1 von 1

Vergleichbare Themen

4
Antw.
1198
Views
ALV TREE in Klasse rufen und auf Ereignisse reagieren
von Ingo » 18.06.2019 08:59 • Verfasst in ABAP® Core
5
Antw.
4693
Views
Klasse soll Typdefinition von anderer Klasse nutzen
von debianfan » 24.05.2017 11:30 • Verfasst in ABAP Objects®
1
Antw.
3572
Views
Lokale Klasse autom. in globale Klasse ändern
von JohnLocklay » 09.01.2019 09:10 • Verfasst in ABAP Objects®
3
Antw.
4190
Views
Doku über ALV Tree / SAP Tree
von SkyHobbit » 14.06.2005 11:56 • Verfasst in ABAP® für Anfänger
6
Antw.
9900
Views
ALV Tree / List Tree?
von wega83 » 02.04.2012 16:06 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

SAP GUI Installation Probleme
vor 14 Stunden von Romaniac gelöst 2 / 71
Erweiterung in ME51N/ME52N:
vor 3 Tagen von ABAPlerv 1 / 221
Erweiterung in ME51N/ME52N:
vor 3 Tagen von ABAPlerv 1 / 200
DIN Norm Klassifizierung
vor 4 Tagen von Radinator 2 / 3123

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

SAP GUI Installation Probleme
vor 14 Stunden von Romaniac gelöst 2 / 71
Erweiterung in ME51N/ME52N:
vor 3 Tagen von ABAPlerv 1 / 221
Erweiterung in ME51N/ME52N:
vor 3 Tagen von ABAPlerv 1 / 200
DIN Norm Klassifizierung
vor 4 Tagen von Radinator 2 / 3123

Unbeantwortete Forenbeiträge

Erweiterung in ME51N/ME52N:
vor 3 Tagen von ABAPlerv 1 / 221
Erweiterung in ME51N/ME52N:
vor 3 Tagen von ABAPlerv 1 / 200