Hallo,
ich habe einen Screen mit 2 CL_GUI_CUSTOM_CONTAINER. Darin befindet sich je ein ALV_GRID. Oberhalb eines jeden Containers befindet sich ein Button, mit dem man die Bereiche auf- und zuklappen können soll.
Ich verwende CL_GUI_CUSTOM_CONTAINER->SET_VISIBlE um die Container auszublenden.
Jetzt mein Problem, ich hätte ganz gerne, dass der 2. Button unterhalb des 1. Buttons zum stehen kommt, wenn ich den ersten Bereich ausblende.
Wenn ich CL_GUI_CUSTOM_CONTAINER->SET_VISIBlE verwende, bleibt der 1. Bereich nur unsichtbar. Der Abstand der Buttons bleibt aber derselbe.
Hat jemand eine Idee, wie ich das elegant bewerkstelligen kann, dass der 2. Button "wandert" ?
nun wäre wahrscheinlich besser gewesen du hättest mit Docking Containern gearbeitet. Aber versuch jetzt mal die Höhe deines Containers der Klasse CL_GUI_CUSTOM_CONTAINER zu verändern, damit der reservierte Platz für den Container kleiner wird - sagen wir mal auf 1 Zeile - dann könnte es zusammen rutschen und schau bei den Eigenschaften vom Dynpro - wo deine Container drauf sind - mal wegen dem Haken Resizefähig (weiss jetzt aber gar nicht ob es das hier in dem Zusammenhang hat)
Die CL_GUI_CUSTOM_CONTAINER und ihr Dynpro-Pedant "Custom Control" haben zwar die Fähigkeit zum "Resize", nur ist das nicht mit der "Laufzeitkomprimierung" des Dynpros vergleichbar.
Die "Custom Control" auf dem Dynpro beanspruchen immer einen bestimmten Bereich, der sich, auch wenn nichts darin angezeigt wird, nicht ausblenden lässt.
Daher 2 Möglichkeiten:
Einen CL_GUI_CUSTOM_CONTAINER/Custom Control den man mit einem CL_GUI_SPLITTER_CONTAINER nach eigenen Wünschen aufteilt. Hierbei ist es möglich mittels den Größenangaben, einzelne Teilbereich auszublenden.
Wie jensschladitz schon gemeint hat, stattdessen einen (oder mehrere) CL_GUI_DOCKING_CONTAINER verwenden. Damit wird auch kein (unnötiger) Platz auf dem Dynpro verschwendet.
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.
Danke für die Hinweise.
Nur: wie bekomme ich einen Button mit Textfeld (zum Ein- und Ausklappen) zwischen die 2 Docking-Container?
Ich dachte bisher immer die Docking-Container kann ich rechts, links, oben oder unten am Dynpro anheften
na den Button machst du auf dein Trägerdynpro - sagen wir mal Dynpro 100 und dort dockst du dann jeweils den entsprechenden Dockingcontainer 1 oder 2 unten / rechts oder links dran - je nachdem welchen und wo du anzeigen willst und einen von beiden machst du dann immer unsichtbar bzw. inaktiv - mit set invisible. Denke so müsste es passen in etwa.
jensschladitz hat geschrieben:... einen von beiden machst du dann immer unsichtbar bzw. inaktiv - mit set invisible.
Nicht ganz. LOOP AT SCREEN wird hierfür benötigt.
Weitere Möglichkeiten:
Eine CL_GUI_TOOLBAR verwenden und diese zusammen mit dem ALV-Grid und einem Splitter-Container im Docking-Container anzeigen.
Einen zusätzlichen Button in die Toolbar des ALV-Grids zum ein-/ausblenden einfügen.
Einen Button im GUI-Status zum ein-/ausblenden einfügen.
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.