Container ein und ausblenden

Getting started ... Alles für einen gelungenen Start.
24 Beiträge • Seite 1 von 2 (current) Nächste
24 Beiträge Seite 1 von 2 (current) Nächste

Container ein und ausblenden

Beitrag von Studi (ForumUser / 24 / 4 / 0 ) »
hallöchen,

ich habe ein dynpro erstellt dort sind 2 Container zu sehen und ein Button. ich möchte den einen Container per Button Click immer wieder ein und ausblenden können, sodass nur noch ein Container zu sehen ist.

Ich habe es bereits mit set_visible versucht -> Ich kann nun den Container zwar ausblenden aber bei erneutem Button Click kann ich ihn nicht wieder anzeigen.
das war mein bisheriger Code:

CASE okcode.
WHEN 'PB_GRAFIK'.
CALL METHOD g_container_graphics->set_visible
EXPORTING
visible = ' '
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.



Wäre sehr dankbar um eine Antwort:
Lg Alisa

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


Re: Container ein und ausblenden

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hallo Alisa,

dein g_container_graphics hat auch die Methode GET_VISIBLE. Mit dieser kannst du dir deinen aktuellen Sichtbarkeitszustand ermitteln. Anschließend musst du dann, je nach Zustand die Sichtbarkeit setzen oder entfernen (letzteres hast du ja bereits).

Folgende Benutzer bedankten sich beim Autor Thanatos82 für den Beitrag:
Studi

Gruß,
der Matze

Re: Container ein und ausblenden

Beitrag von Studi (ForumUser / 24 / 4 / 0 ) »
Hallo Matze,

ja das habe ich mir auch gedacht und bereits probiert.Allerdings bekomme ich immer einen fehler bei

visible = ' '


hier der code:
CALL METHOD g_container_graphics->get_visible
importing
visible = ' '
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.


Lg Alisa

Re: Container ein und ausblenden

Beitrag von abuma (Specialist / 102 / 36 / 14 ) »
Hallo Alisa,

get_visible liefert dir ja den Status zurück, also muss dieser auch in eine entsprechende Variable geschrieben werden.

Code: Alles auswählen.

DATA: visible TYPE c.
CALL METHOD g_container_graphics->get_visible
importing
visible = visible
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.
Liebe Grüße
abuma

Folgende Benutzer bedankten sich beim Autor abuma für den Beitrag:
Studi


Re: Container ein und ausblenden

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
CL_GUI_CFW=>FLUSH nicht vergessen!
Vorallem bei vielen GET-Methoden ist das notwendig, sonst kommt am Ende ein Kurzdump bzw. steht nix in der Variable drinnen.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Studi

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.

ECC: 6.18
Basis: 7.50

Re: Container ein und ausblenden

Beitrag von Studi (ForumUser / 24 / 4 / 0 ) »
Okay, vielen dank schon msl für die Hinweise.
Aber selbst wenn ich alle Ratschläge befolge, kann die Grafik lediglich einmal ausgeblendet werden. Ein einblenden ist nicht mehr möglich.

CASE okcode.
DATA: visible TYPE c.

WHEN 'PB_GRAFIK'.
CALL METHOD g_container_graphics->set_visible
EXPORTING
visible = visible
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.


CALL METHOD g_container_graphics->get_visible
IMPORTING
visible = visible
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.


CALL METHOD cl_gui_cfw=>flush EXCEPTIONS CNTL_SYSTEM_ERROR = 1 CNTL_ERROR = 2.

Re: Container ein und ausblenden

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hallo Alisa,

was du da versuchst ist ja die Zuweisung des vorhandenen Zustandes. ;)

Korrekterweise sollte es so aussehen:

Code: Alles auswählen.

CASE okcode.
DATA: visible TYPE c.

WHEN 'PB_GRAFIK'.
* aktuellen Zustand ermitteln
CALL METHOD g_container_graphics->get_visible
EXPORTING
visible = visible
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.

* Wenn der Container sichtbar ist, dann ...
IF visible = 'X'.
* ...Container auf invisible setzen
CALL METHOD g_container_graphics->set_visible
IMPORTING
visible = ' '
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.

* Wenn der Container nicht sichtbar ist, dann ...
ELSE.
* ...Container auf visible setzen
CALL METHOD g_container_graphics->set_visible
IMPORTING
visible = 'X'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.

ENDIF.

CALL METHOD cl_gui_cfw=>flush EXCEPTIONS CNTL_SYSTEM_ERROR = 1 CNTL_ERROR = 2.
Gruß,
der Matze

Re: Container ein und ausblenden

Beitrag von Studi (ForumUser / 24 / 4 / 0 ) »
Leider funktioniert es nicht. jetzt kann man den Container nicht einmal mehr ausblenden.

Re: Container ein und ausblenden

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hast du mein Coding kopiert oder es nur bei dir angepasst? Falls zweiteres: hast du gesehen das ich GET und SET geändert habe?
Sehe aktuell nicht, warum es nicht funktionieren sollte..
Setz doch mal einen Break-Point an deine CASE-Anweisung und schau wie das Feld visible besetzt ist nach jeder Anweisung. Vielleicht erkennst du ja dann einen Fehler.
Gruß,
der Matze

Re: Container ein und ausblenden

Beitrag von Studi (ForumUser / 24 / 4 / 0 ) »
Ja zuerst habe ich dein Coding genommen. Allerdings hast du die Importparameter bei set und dies wird mir als fehler angezigt weil es ja ein exportparameter besitzen muss. Ja bin grad am Debugging dran :)
Dankeeee

Re: Container ein und ausblenden

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Und tue dir und denen, die nach dir deinen Code bearbeiten müssen, den Gefallen und benutze die funktionale Schreibweise:

Code: Alles auswählen.

g_container_graphics->set_visible( visible = abap_true ).
Wenn man die Exceptions eh nicht abfragt, braucht man sie auch gar nicht erst anzugeben... (Bei GUI-Controls!!)
Bei den Exceptions bei den GUI-Controls kommt es dann zu einem Kurzdump. Was anderes als

Code: Alles auswählen.

if sy-subrc <> 0. message a123(xy). endif.
kannst du dann eh kaum machen.

Re: Container ein und ausblenden

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Studi hat geschrieben:Ja zuerst habe ich dein Coding genommen. Allerdings hast du die Importparameter bei set und dies wird mir als fehler angezigt weil es ja ein exportparameter besitzen muss. Ja bin grad am Debugging dran :)
Dankeeee
Na dann pass die Aufrufe so an, dass es passt. Hatte nur die Worte GET und SET getauscht und nicht weiter drauf geschaut. Dann sollte es funktionieren
Gruß,
der Matze

Re: Container ein und ausblenden

Beitrag von abuma (Specialist / 102 / 36 / 14 ) »
Also so funktioniert es bei mir prima:

Code: Alles auswählen.

      o_container->get_visible( IMPORTING visible = visible ).
      o_container->set_visible( visible = visible ).

      CALL METHOD cl_gui_cfw=>flush.
Der Inhalt von Visible steht entweder auf 1 oder ist initial, daher kann die Abfrage mit:

Code: Alles auswählen.

IF visible = 'X'.
denke ich nicht funktionieren.

Liebe Grüße
abuma

Re: Container ein und ausblenden

Beitrag von Studi (ForumUser / 24 / 4 / 0 ) »
Das gibt es nicht, wenn ich dein Code @abuma ausprobiere. Dann funktioniert es, ABER er verdoppelt sämtliche Spalten in meinem ALV. Arghh

Lg Alisa

Re: Container ein und ausblenden

Beitrag von abuma (Specialist / 102 / 36 / 14 ) »
Wie sieht dein Coding denn derzeit aus?

Liebe Grüße
abuma

Vergleichbare Themen

14
Antw.
15864
Views
PDF im Container öffnen
von Barney » 24.04.2017 10:19 • Verfasst in ABAP® Core
14
Antw.
7989
Views
Parameter in Container
von dawns » 03.12.2007 16:51 • Verfasst in ABAP Objects®
2
Antw.
3144
Views
Scrollbalken bei ALV-Container
von Barney » 12.10.2016 08:18 • Verfasst in ABAP® für Anfänger
3
Antw.
3421
Views
Docking Container im Docking Container
von GreatEMU » 25.04.2013 11:54 • Verfasst in ABAP Objects®
1
Antw.
1897
Views
Container 'wandert' mit
von sebo » 24.04.2015 11:22 • Verfasst in Dialogprogrammierung

Aktuelle Forenbeiträge

Regex in where
vor 11 Stunden von tar 8 / 265
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1553
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 200
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 442

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

Regex in where
vor 11 Stunden von tar 8 / 265
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1553
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 200
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 442

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 2 Tagen von snooga87 1 / 145
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3321
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9874