ich habe eine Frage zum Füllen eines Programm's in einen Docking Container!
Wir haben einen Docking Container mit 3 Bereichen auf dem Bildschirm:
links: Tree Control
rechts unten: ALV
rechts oben: Dynpro
Jetzt die Frage: Bei Doppelklick auf den ALV soll rechts oben ein anderes Dialogprogrammreingeladen werden. Jetzt arbeite ich in der Methode double_click beim ALV mit dem Befehl
CALL DIALOG. Er startet natürlich das Programm neu und nicht in meinem Docking Container?
Kennt ihr da eine Möglich bzw. eine Alternative zum Befehl CALL DIALOG?
Ich glaube ihr verwechselt hier Fisch mit Fleisch:
Wenn man einen Splitter-Container verwendet kann man theoretisch Controls austauschen.
Zuerst mit REMOVE_CONTROL ein in einen Container befindliches Control herausnehmen und dann entweder eine neues wie gewohnt anlegen oder ein bereits bestehendes mit ADD_CONTROL einfügen.
ABER: Das funktioniert nicht mit allen Controls. Es gibt einige die reagieren auf diese Art der Änderung etwas allergisch. z.B. der CL_GUI_SAPSCRIPT_EDITOR "vergisst" alle registrierten Events.
Für solche Sachen empfehle ich stattdessen die Verwendung von verschachtelten Dynpros:
Man hat ein Trägerdynpro (200/255) mit einem Subscreenbereich (ebenfalls 200/255) bei dem Resizing eingeschalten ist (z.B. 1/1).
In der Ablauflogik schreibst man CALL SUBSCREEN ... INCLUDING GD_REPID GD_DYNNR.
Im Hauptprogramm des Dynpros brauchst man dann noch die entsprechenden Variablen GD_REPID und GD_DYNNR.
Dann kann man zu jedem PBO bestimmen, welches Dynpro im Subscreen angezeigt werden soll, indem man die Variablen mit den gewünschten Werten befüllt.
Die jeweiligen Dynpros müssen dann aber auch als Subscreens definiert sein.
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.
@dead-trousers: Den ersten Ansatz versteh ich nicht. Es geht um eine Integration eines anderen Dialogprogramm's in einen bestehenden Container.
Mit CALL SUBSCREEN INCLUDING GD_REPID GD_DYNNR habe keine Moglichkeit der Datenweitergabe von Programm A nach Programm B?!?!?
Mit CALL DIALOG kann ich ja per IMPORTING und EXPORTING diverse Parameter übergeben!
ups, sorry.
Hab grad meinen Fehler bemerkt: CALL DIALOG und nicht CALL SCREEN
Die Anweisung CALL DIALOG ruft den Dialogbaustein auf, dessen Name ...
Dialogbaustein: Obsoletes Repository-Objekt. Vorgänger von Funktionsbausteinen ...
Hab leider noch nie damit gearbeitet (wahrscheinlich auch weil obsolet).
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.