Problem mit CL_GUI_HTML_VIEWER

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

Problem mit CL_GUI_HTML_VIEWER

Beitrag von MiWern (ForumUser / 5 / 1 / 0 ) »
Hallo,
ich bin noch Anfänger in ABAP Objects und hab ein kleines Problem, auf dessen Lösung ich einfach nicht komme.

Ich habe eine eigene Klasse erstellt die von der Klasse CL_GUI_HTML_VIEWER erbt. Meine Klasse soll auf einem Container eine HTML-Tabelle bauen in der HTML-Buttons sind. Das funktioniert auch soweit alles ganz gut. Ich erzeuge den HTML-Code und mit der Methode Load_Data( ) sowie Show_Url( ) werden meine Buttons auch angezeigt.
Nun möchte ich nach Klick eines Buttons, der außerhalb des Containers liegt, die HTML-Buttons in meinem Container verändern, z.B. die Hintergrundfarbe oder anstatt Anfangs 12 Buttons nur noch 6 anzeigen. Das Erzeugen des neuen HTML-Codes funktioniert auch, nur werden ein meinem Container immer nur die zuerst erstellten Buttons angezeigt und nicht die neu erzeugten. Irgendwie aktualisiert sich der Container nicht, oder der neue HTML-Code wird nicht neu geladen.
In einem anderen Forum hab ich folgenden Eintrag hierzu gefunden:

"This led me to the obvious - not to 'free the instance of CL_GUI_HTML_VIEWER but to 'free' CL_GUI_CUSTOM_CONTAINER instance."

Code: Alles auswählen.

*  In the PBO:
If not container is initial.  " container is the 'created' custom container 
   CALL METHOD container->free.
endif.
Auch das hab ich versucht, aber mein Ergebnis bleibt unverändert. Kann mir jemand weiterhelfen?

Vielen Dank schonmal,
Grüße MiWern

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


Re: Problem mit CL_GUI_HTML_VIEWER

Beitrag von a-dead-trousers (Top Expert / 4483 / 231 / 1205 ) »
hi!

Ein zerstören und wieder erzeugen des HTML-Controls ist nicht notwendig und ich würde auch dringend davon abraten (unnötiger overhead)
Bei der neuen HTML-Seite hast du auch LOAD_DATA und danach SHOW_URL mit der neuen URL gemacht?
Du darfst natürlich auch den Contructor nur einmal aufrufen. Dazu merkst du dir eine globale Variable von deinem Control die du dann nur auf IS BOUND abfragen musst. Dann sollte es eigentlich funktionieren.

Kleiner Tipp am Rande:
Ein Übertragen des ganzen HTML-Codes nur um ein paar Buttons zu ersetzten halte ich für wenig sinnvoll.
Es gibt die Methode SET_SCRIPT_ON_ABAP_COMPLETE mit der kannst du ein JavaScript direkt nach der Verarbeitung des GUIs ausführen lassen.
Das ist meines Erachtens wesentlich effizienter um solche Aufgaben zu erledigen.

Was verwendest du eigentlich um den HTML-Code zu erstellen? Hoffentlich nicht die CL_DD_DOCUMENT die produziert eigentlich viel zuviel unnötigen HTML-Code. In dem Fall würde ich dir zu CL_IXML raten. Damit hast du den Code viel leichter unter Kontrolle und kannst sogar dank DOM einzelne Abschnitte ersetzten ohne gleich den ganzen Code wieder und wieder komplett aufbauen zu müssen.

P.S.: Wenn du den Code posten würdest könnt ich dir vielleicht noch mehr helfen.

lg
ADT

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

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: Problem mit CL_GUI_HTML_VIEWER

Beitrag von MiWern (ForumUser / 5 / 1 / 0 ) »
Hey vielen Dank für deine Hilfe...leider sind bei mir ein paar freie Tage dazwischen gekommen.

Mittlerweile funktioniert es. Du hattest natürlich vollkommen Recht damit, dass ein Zerstören nicht notwendig war. Das Problem war leider ein totaler Anfänger Fehler :), anstatt einem Control hatte ich (aus Versehen) zwei erzeugt, die übereinander lagen...und mein Control in dem der HTML Code angezeigt werden sollte, lag natürlich hinter dem anderen Control.
Mit dem Übertragen des ganzen HTML-Codes hast du natürlich auch recht, dass hab ich mittlerweile auch anders gelöst.
Um den HTML-Code zu erstellen hab ich bis jetzt noch nichts spezielles verwendet. Auch auf die Gefahr hin das ich jetzt gesteinigt werden, hab ich den HTML-Code als Anfänger quasi hart codiert und selbst erzeugt. Deswegen auch vielen Dank für die Anregung mit der Klasse CL_IXML. Die werde ich mir mal genauer ansehen.

Danke nochmals.
Grüße
MiWern

Seite 1 von 1

Vergleichbare Themen

4
Antw.
8193
Views
HTML-Viewer-Control verändert HTML-Quelltext
von paramedic78 » 07.01.2013 14:50 • Verfasst in ABAP® für Anfänger
3
Antw.
6655
Views
Komprimieren von HTML im Viewer
von a-dead-trousers » 23.12.2011 10:17 • Verfasst in ABAP Objects®
0
Antw.
3050
Views
Dynamische Dokumente und HTML-Viewer
von webster » 02.01.2007 14:01 • Verfasst in ABAP Objects®
0
Antw.
2311
Views
HTML Viewer Berechtigungen mitgeben
von Dyrdek » 08.05.2015 08:47 • Verfasst in ABAP® Core
16
Antw.
10488
Views
HTML-Viewer-Control: Quelltext nach sapevent verändern
von paramedic78 » 20.01.2013 16:37 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

BAPI zur ABSO?
vor 2 Wochen von DeathAndPain 2 / 2403
Materialstammerweiterung: Neuer Reiter
vor 4 Wochen von DeathAndPain gelöst 4 / 3214
Ermittlung der Arbeitstage (Mosid)
vor 4 Wochen von Radinator 11 / 48815
LSMW-Problem
letzen Monat von DeathAndPain gelöst 6 / 6691

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

BAPI zur ABSO?
vor 2 Wochen von DeathAndPain 2 / 2403
Materialstammerweiterung: Neuer Reiter
vor 4 Wochen von DeathAndPain gelöst 4 / 3214
Ermittlung der Arbeitstage (Mosid)
vor 4 Wochen von Radinator 11 / 48815
LSMW-Problem
letzen Monat von DeathAndPain gelöst 6 / 6691