Verlassen Dynpro?!

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

Verlassen Dynpro?!

Beitrag von eschi78 ( / / 0 / 3 ) »
Weiß einer, wenn ich von Dynpro 2 zu Dynpro 1 zurückspringe, wie ich einen Tree in einem TreeControl sowie einen GridControl lösche ohne
daß dann der alte Tree und die alten Daten im Grid zu sehen sind ,wenn ich mit anderen Bedingungen wieder mit in Dynpro 2 springe.
Bei der Methode container->free kommt der Dump Objectreferenz zeigt auf null!
Es funktioniert nur, wenn ich aus der TA komplett raus und wieder reinspringe.

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


Beitrag von felix ( / / 0 / 3 ) »
Hi eschi,
komme aus der Java welt und arbeite mich grade in ABAP bzw. ABAPOO ein. deshalb bin ich mir nicht sicher ob das so funktioniert.

Aber warum die free methode aufrufen wenn du einfach eine referenz auf ein anderes objekt übergeben kannst. bin mir eben nicht sicher ob das bei ABAPOO geht.
Du erstellst dir zwei trees und übergibst nur den tree den du auch sehen möchtest.

Gruß Felix

ps: die Brockhaus PDFs in der Tutorialsection sind klasse!!! Danke!

Die Beschreibung des Problems ist etwas dünn

Beitrag von Norbert (ForumUser / 52 / 0 / 0 ) »
Normalerweise refresht man den Tree, wenn man aktuelle Daten anzeigen möchte.
Wahlweise kann man ihn auch abbauen und neu instanzieren. Aufpassen muss man auch mit der lifetime, die man bei der Instanzierung der Controls mitgeben kann. Hier sind verschiedene Werte möglich:

lifetime_imode : Das Control lebt, solange der interne Modus nicht abgebaut wird (z.B.: leave program. leave transaction. set screen 0, leave screen. ). Danach wird die Methode finalize aufgerufen

lifetime_dynpro : Das Control lebt, solange die Instanz des Dynpros existiert, d.h. sich noch im Dynprostapel befindet. Danach wird die Methode free aufgerufen.
Die Benutzung dieses Modus regelt automatisch die Sichtbarkeit von Controls. Controls werden immer nur dann eingeblendet, wenn das Dynpro aktiv ist, auf dem sie erzeugt wurden. Ist ein anderes Dynpro aktiv, werden sie automatisch unsichtbar geschaltet.

lifetime_default : Wird das Control in einen Container eingebaut, übernimmt es die Lebensdauer des Containers. Wird es nicht in einen Container eingebaut (z.B. weil es selbst ein Container ist), dann wird die Lebensdauer auf lifetime_imode gesetzt.

Grüssle
Norbert
...........
Just do it !

Neues Problem

Beitrag von eschi78 ( / / 0 / 3 ) »
Hallo zusammen,

ich habe das Problem mit LEAVE TO TRANSACTION gelöst.
Trotzdem danke.

Jetzt habe ich ein neues Problem:
Ich rufe per Doppelklick auf einen Node im Tree verschiedene Grids auf. Wenn ich eine Zeile markiere, kann ich per Button in Dynpro 3 springen. Das Problem ist, wenn ich eine Zeile markiert habe, in Dynpro 3 springe, wieder zurückgehe auf ein anderes Grid per Doppelklick gehe, dann wieder auf das Grid mit der markierten Zeile und den Button drücke, erkennt das Grid die Markierung nicht. Die Methode get_selected_rows liefert dann eine leere interne Tabelle irows zurück. Es funktioniert auch nicht, wenn ich die Zeile entmarkiere und wieder markiere.[/i]

Gelöst ?

Beitrag von Norbert (ForumUser / 52 / 0 / 0 ) »
Sorry, aber Du scheinst die quick-and-dirty Varianten zu bevorzugen.
Gerade im doch sehr komplexen Controls-Umfeld ist es jedoch wichtig zu verstehen, was genau abläuft, welches Control zu welcher Zeit gültig ist etc.

Ansonsten sind solche side-effects, wie Du sie im 2.ten Problem beschreibst, an der Tagesordnung.
(Ich spreche da aus Erfahrung :( )

Problem ist nach der Beschreibung jedenfalls kaum nachzuvollziehen. Dafür ist es zu kurz und durcheinander dargestellt. Denke daran, dass man sich ohne Screenshot & Coding in ein fremdes Problem eindenken soll - und das in einer überschaubaren Zeit.


Viele Grüsse

Norbert
...........
Just do it !

Beitrag von eschi78 ( / / 0 / 3 ) »
Hallo Norbert,

ok, ich versuche dir mal konkreter zu beschreiben, was ich für ein Problem habe.

Ich habe auf der linken Seite meines Dynpro's einen
ListTree! Auf der rechten Seite wird per Doppelklick
auf einen Node des Tree's ein ALV erstellt. Je nach Doppelklick wird eine neue Tabelle in das Grid geladen. Jedes dieser Grid's steht auf einem Subscreen, der per PBO dort reingeladen wird.

Desweiteren habe ich auf jedem ALV einen Button hinzugefügt, den, wenn eine Zeile markiert ist, man betätigen kann, um in ein anderes Dynpro zu springen.
Das klappt beim ersten Mal auch. Wenn ich allerdings aus dem Dynpro zurückspringe und auf dem Tree ein anderes Grid per Doppelklick aufrufe und ich dort eine Zeile markiere, so erkennt die Methode get_selected_rows diese Markierung nicht.

Hilft es hierbei vielleicht, den LifetimeParameter des Grid's auf Lifetime-dynpro wie du es oben beschrieben hast zustellen???

[/code]

Beitrag von Gast ( / / 0 / 3 ) »
@eschi: Kleine Tipp am Rande. Als registrierter Nutzer kannst Du Dateien (z.B. Screenshots) an einen Post uploaden. Für die Registrierung brauchst Du nur eine gültige e-mail-Adresse, mehr nicht.

Zeitpunkt des Methodenaufrufs

Beitrag von Norbert (ForumUser / 52 / 0 / 0 ) »
Zu welchem Zeitpunkt rufst Du besagte Methode denn auf ?
PAI des jeweiligen Grid-Subscreens ? Benutzt du das richtige Grid-Objekt für den Methodenaufruf ?

Vielleicht solltest Du die Lebensdauer des GridControls wirklich an das Dynpro binden.

Gruss

Norbert
...........
Just do it !

eschi78

Beitrag von eschi78 (ForumUser / 69 / 0 / 0 ) »
Danke! habe mich jetzt registriert und mal ein paar Screenshots und Coding angehängt!

Instanzierung

Beitrag von Norbert (ForumUser / 52 / 0 / 0 ) »
Sieht soweit gut aus.
Werden die Container/Grids bei jedem Durchlauf
instanziert ?

Vielleicht nur beim ersten Aufruf instanzieren:

if not container_ap is initial.

...
Grid instanzieren
Events setzen
...

endif.
...........
Just do it !

Beitrag von eschi ( / / 0 / 3 ) »
Danke Norbert! Funktioniert jetzt erstmal alles so für's erste!!!

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2665
Views
subscreen verlassen
von centauro_ernst » 25.05.2016 10:52 • Verfasst in Dialogprogrammierung
2
Antw.
1957
Views
double_click event verlassen
von tom1986 » 20.02.2009 09:19 • Verfasst in ABAP Objects®
8
Antw.
4164
Views
ALV-Liste kurzeitig verlassen ???
von the » 19.02.2007 09:54 • Verfasst in ABAP® für Anfänger
4
Antw.
4262
Views
Report vor Selektion verlassen
von dermannvomberg » 07.10.2010 10:50 • Verfasst in Dialogprogrammierung
1
Antw.
3903
Views
SALV-Popup verlassen
von ralf.wenzel » 13.12.2014 17:24 • Verfasst in ABAP Objects®

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

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.