HTML-Viewer-Control: Quelltext nach sapevent verändern

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

HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von paramedic78 (ForumUser / 7 / 0 / 0 ) »
Hallo,

ich schicke an ein HTML-Viewer-Control HTML-Quelltext. Der Benutzer klickt dann auf der HTML-Seite einen Button, dies lese ich mittels
SAPEVENT aus. Nun möchte ich aber, je nachdem, welchen Button der User geklickt hat, dem Container neuen HTML-Quelltext zur Anzeige
übergeben.
Ist dies möglich, oder wird der HTML-Quelltext im Container nur einmal aufgerufen, wenn das Dynpro neu aufgebaut wird ?

Vielen Dank,
Swen

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


Re: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von ewx (Top Expert / 4843 / 310 / 638 ) »
nein. Kannst du neu laden und "refreshen".

Re: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von paramedic78 (ForumUser / 7 / 0 / 0 ) »
Hallo,

ok, danke.

Kann man eigentlich aus ABAP heraus ein "Submit"-Ereignis im HTML-Quelltext des Viewer-Controls auslösen ?

Hintergrund:
Ich würde gerne 2 HTML-Container auf ein Dynpro platzieren und je nachdem, was im ersten Container geklickt wurde,
soll im Container2 ein "Submit"-Ereignis ausgelöst werden um die dort eingetragenen Werte auslesen zu können.

Danke,
Swen

Re: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
hi!

Ja, dafür gibt es beim HTML-Viewer-Control die "protected" Methode SET_SCRIPT_ON_ABAP_COMPLETE.
Um dir diese nutzbar zu machen musst du eine Subklasse anlegen und dort eine neue "public" Methode anlegen welche intern dann die SET_SCRIPT_ON_ABAP_COMPLETE aufruft.
Das hiermit übergebene Script wird, wie der Name schon vermuten lässt, ausgeführt nachdem alle Operationen am SAPgui beendet sind und auf eine weitere Benutzereingabe gewartet wird.

Weiters gibt es auch SET_SCRIPT_ON_DATA_SUBMITTED welche logischerweise nach einem SUBMIT der Daten vom Control zurück in ABAP ausgelöst wird.

Sollten beide Methoden bei dir nicht vorhanden sein (= Basis < 7.0) gibt es noch die Methoden SET_SCRIPT und EXECUTE_SCRIPT.
Mit ersterer kann man ein Script an das Control übergeben, welches erst nach Aufruf von zweiterer Methode aufgerufen wird.

Bei allen Methoden empfielt es sich die Ausführung im Viewer mittels "window.setTimeout" um ein paar hundertstel Sekunden zu verzögern.
Bei mir ist es hin und wieder vorgekommen, je nachdem wie schnell der IE die Daten interpretieren konnte, dass ohne diese Verzögerung "nichts" passiert ist.

lg ADT

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

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: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von black_adept (Top Expert / 4080 / 125 / 935 ) »
paramedic78 hat geschrieben:Kann man eigentlich aus ABAP heraus ein "Submit"-Ereignis im HTML-Quelltext des Viewer-Controls auslösen ?
Hallo Swen,

was genau stellst du dir denn unter dem "Submit"-Ereignis vor? Dass ein Button geklickt wird oder dass Formulardaten der Seite an die im FORM-Tag angegene Adresse via POST oder GET geschickt werden?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von paramedic78 (ForumUser / 7 / 0 / 0 ) »
black_adept hat geschrieben: ...Dass ein Button geklickt wird oder dass Formulardaten der Seite an die im FORM-Tag angegene Adresse via POST oder GET geschickt werden?
Hallo,

im Prinzip passiert beides. Im FORM-TAG steht ein SAPEVENT, welches ich abfragen möchte. Also würde ich gerne vom ABAP-Code aus
simulieren, dass im HTML-Container ein Button geklickt wird (und damit dann die Daten an die FORM-TAG Adresse geschickt werden).

Ihr fragt Euch wahrscheindlich, warum so kompliziert ? ES ist so, dass ich 2 HTML-Container im Dynpro habe. In dem einen Container
ist eine Art HEADER, wo paar Daten stehen und ausserdem eine eigene Menüzeile mit Buttons. Ein Button soll sein "Speichern". Und wenn der
gedrückt wird, sollen also die Formulardaten aus dem zweiten Container abgeschickt und auch per SAPEVENT ausgelesen werden...

Ich danke Euch für die große schnelle Hilfe,
Swen

Re: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Ein HTML-Formular "programmgesteuert" abzuschicken geht (wie ich auch schon etwas kryptisch angedeutet habe :oops: ) über JavaScript.

Code: Alles auswählen.

<formular>.submit();
Das schickst du zusammen mit "window.setTimeout" an den jeweiligen HTML-Viewer mit dem Formular.

Ungefähr so das ganze:

Code: Alles auswählen.

data lt_script type w3htmltab.
append 'window.setTimeout(<formular>.submit(),100);' into lt_script.
lr_html_control->set_script_on_abap_complete( SCRIPT = lt_script ).
<formular> musst du natürlich mit dem Namen deines Formulars im HTML-Code ersetzen.

lg ADT

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

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: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von black_adept (Top Expert / 4080 / 125 / 935 ) »
Hi Swen,

JavaScript ist schon der Richtige Ansatz - auch wenn ich das wohl irgendwie anders als adt lösen würde. Ist aber egal.
Schreib doch mal wo genau dein Problem liegt.
- ein JavaScript zu erstellen, welches einen Buttonklick simuliert
- ein JavaScript von ABAP heraus anzutriggern
- womöglich noch ein ganz anderes Problem

Momentan können wir doch nur im Dunkeln rumstochern wo es hapert.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von paramedic78 (ForumUser / 7 / 0 / 0 ) »
Mein Problem war/ist, ein JavaScript von ABAP heraus anzutriggern. Aber das wurde ja gut beschrieben.

Allerdings bin ich heute auf noch etwas ganz anderes gestoßen: Ein Menü, welches auch beim Scrollen fix bleibt, siehe auf www.placebo-film.de
Sieht schick aus und ist deutlich weniger umständlich...

Ich danke euch allen trotzdem wie immer für die große Hilfe !

Swen

Re: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von sidneyweiher (ForumUser / 11 / 4 / 0 ) »
Hallo,

ich habe hier mal das alte Thema rausgesucht - hoffentlich ist das ok.
Habe zu dem Thema noch eine weiterführende Frage:

Ich habe eine HTML-Viewer mit eingebetteter View. Ich ruf im Dynpro beim u-command "Back" via Script die Funktion logout() auf und verlasse den Screen. Funktioniert alles super. Jetzt habe ich allerdings den Fall, dass ich beim Aufruf des Scripts ein Popup in der eingebetteten Anwendung bekomme, wo auf das Speichern von offenen Daten hingewiesen wird (Speichern - ja / nein). Die Möglichkeit des Abbruchs gibt es nicht.

Wie kann ich das "Leave Screen" soweit herauszögern, bis der User seine Entscheidung getroffen hat und auf Speichern geklickt hat?

Ich habe gedacht, dass ich via get_current_url die aktuelle URL abfrage und dann gucke, ob sich die URL verändert (nach Logout andere URL). Das funktioniert aber nur sehr bescheiden :-)

Alles in einem PAI abzuarbeiten scheint mir ebenfalls unmöglich.
Kann man evtl. auf das Logout-Event der Anwendung triggern?

Über eine Idee würde ich mich sehr freuen. Vielen Dank!

Re: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Normalerweise würde ich das Leave-Screen im Event-Handler für das Sap-Event einbauen, wenn vom HTML der Back-Befehl kommt:
Back im Gui-Status gedrückt->Set-Script im HTML-Viewer->Timeout im HTML und anschließendes Sap-Event->Eventhandler des Sap-Event->Die Abfrage ob Speichern oder nicht->Controls zerstören (Zur Sicherheit)->Leave Screen

Wenn du aber mit "eingebetteter View" ein Web-Dynpro meinst, weiss ich leider nicht ob das auch so geht.

lg ADT

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

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: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von sidneyweiher (ForumUser / 11 / 4 / 0 ) »
Super! Das hilft mir wirklich sehr. Mit eingebettet meinte ich einen CuContainer.
Ich weiß nur nicht recht, wie ich den "Back-Befehl" eigentlich registrieren kann.
Das grundsätzliche Verständnis habe ich hier gefunden: http://www.tricktresor.de/blog/fly-out-menu/
Aber hier wird das SAPEVENT auf der HTML-Seite ausgelöst, oder?

Eigentlich möchte ich folgendes:
Wenn auf der eingebetteten Seite der Button-Lockout gedrückt und das Event Back2Login ausgelöst wird, möchte ich darauf in SAP reagieren können. Also weiß ich nicht, wie ich den Eventhandler auf "back2login" registrieren soll. Geht das überhaupt oder muss meine eingebettete Seite etwas mit SAPEVENT auslösen, sodass ich darauf reagieren kann?

Re: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von black_adept (Top Expert / 4080 / 125 / 935 ) »
sidneyweiher hat geschrieben:Eigentlich möchte ich folgendes:
Wenn auf der eingebetteten Seite der Button-Lockout gedrückt und das Event Back2Login ausgelöst wird, möchte ich darauf in SAP reagieren können. Also weiß ich nicht, wie ich den Eventhandler auf "back2login" registrieren soll. Geht das überhaupt oder muss meine eingebettete Seite etwas mit SAPEVENT auslösen, sodass ich darauf reagieren kann?
SAP kann nativ nur auf SAPEVENT: reagieren.

Wenn du auf etwas anderes reagieren willst musst du dir einen eigenen Javascript-handler bauen, der auf diesen anderen Event reagiert. Und sobald dann der Event getriggert wird muss der JavaScript-Eventhandler dann selber einen SAPEVENT: auslösen damit SAP das dann auch mitbekommt.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Die Klasse CL_GUI_HTML_VIEWER hat ein Event SAPEVENT. Das musst du registrieren, damit du, nachdem der Benutzer auf den Link geklickt hat, darauf reagieren kannst.
http://scn.sap.com/thread/3235457
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: HTML-Viewer-Control: Quelltext nach sapevent verändern

Beitrag von sidneyweiher (ForumUser / 11 / 4 / 0 ) »
"SAP kann nativ nur auf SAPEVENT: reagieren."
Das hatte ich leider befürchtet - schade! Aber vielen Dank für eure Hilfe!

Vergleichbare Themen

4
Antw.
4060
Views
HTML-Viewer-Control verändert HTML-Quelltext
von paramedic78 » 07.01.2013 14:50 • Verfasst in ABAP® für Anfänger
1
Antw.
4508
Views
HTML-Container und SAPEVENT
von Heraklit » 17.06.2012 10:11 • Verfasst in Dialogprogrammierung
1
Antw.
2116
Views
XML mit HTML-Viewer?
von ernst » 10.12.2004 13:12 • Verfasst in ABAP Objects®
3
Antw.
4673
Views
Komprimieren von HTML im Viewer
von a-dead-trousers » 23.12.2011 10:17 • Verfasst in ABAP Objects®
1
Antw.
1651
Views
HTML-Viewer Formulare
von Stefan7777 » 21.04.2006 11:19 • Verfasst in ABAP® Core

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.

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1661
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8263