Hallo,
ich bin neu hier und beginne erst mit Abap-Objects. Deshalb hoffe ich auf Hilfe bei einem Thema, bei dem ein alter Hase sicher gähnen wird:
Ausgangabeispiel ist das Programm:
SAPSIMPLE_TREEM_DRAGDROP_DEMO2
Wie kann ich hier den DRAG AND DROP zwischen den Trees in beide Richtungen (also hin und her) realisieren (kein COPY sondern MOVE).
Wenn ihr mir helfen wollt, dann bitte mit ausführlichen Angaben - denn wie gesagt - ich fang erst an ...
Vielen Dank!
Hallo Enno,
herzlichen Dank - Dein Beispielprogramm läuft - war ein guter Tip um Struktur und Überblick für das Thema zu bekommen. Wird mich sicher auch noch ausreichend beschäftigen.
Aber mein konkretes Problem(Drag & Drop zwischen 2 Trees - like PING-PONG) ist damit leider noch nicht geklärt - oder verstehe ich da etwas nicht ausreichend ...
Beste Grüße
Micha
Hi Micha,
ein Beispielprogramm für dein "Pingpong" habe ich nicht.
Aber die Funktionsweise müsste eigentlich ganz gut aus meinem Beispielcoding hervorgehen.
Du musst halt für beide Trees die entsprechenden Handler installieren. Und dann müsste es eigentlich egal sein, in welchem Tree du bist.
Gruß, Enno
Den DRAG_Drop in beiden Richtungen im List-Tree (CL_GUI_LIST_TREE) kann ich mir jetzt auf dem Bildschirm anzeigen lassen Dank Deines Beispiels aus dem TRESSOR herzlichen Dank!
Ich kann jetzt ganze Knoten und die darunter liegenden Hierarchien um- und zurückhängen.
Wenn ich drage und drope so sind danach (und natürlich auch beim Auslösen eines PAI) die NODE-Table und auch die ITEM-Table nicht verändert (gleicher Aufbau wie im PBO programmiert). Mein Programm kennt also nicht die neuen Zuordnungen - und die braucht es, um die Daten zu sichern.
Ich habe herausgefunden, dass derAufruf in der Methode DROP_COMPLETE:
CALL METHOD g_tree->move_node im Programm zwar angesprungen, aber nicht ausgeführt wird. - Kann das die Ursache sein? Und wie kann ich doch noch zur Info kommen welche Knoten jetzt wo hängen?
Ich bitte um Hilfe denn hier komme ich nicht weiter...
Vielen Dank!
Michael
du hast zwei Möglichkeiten: Entweder "loggst" du das Hinundherverschieben mit (Dafür sollte natürlich das DROP_COMPLETE funktionieren...) oder du liest die daten zum Sichern ein (Methoden GET_OUTTAB_LINE in Verbindung mit GET_CHILDREN) Für die zweite Methode empfiehlt es sich, einen ROOT-Knoten zu haben, damit du einen Ausgangspunkt hast, bei dem du anfangen kannst zu lesen.
Hallo
ABER:
wie komme ich an die beiden Methoden GET_OUTTAB_LINE und GET_CHILDREN ran ? Hab sie in der Klasse cl_gui_list_tree nicht finden können. Und wie sollte ich sie dann "verwursten".
Aber was anderes hab ich:
Da gibt es eine Methode g_tree->GET_OUTTAB_LINE. Kann diese Mthode weiterhelfen ? Sie ist allerdings PROTECTED. Wie komme ich da ran ?
Und wie müßte ich dann den Parameter property versorgen ...
.... ich fang halt erst an mit OO....