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 / 4271 / 213 / 1140 ) »
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 / 4784 / 294 / 628 ) »
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

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

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 2 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140