4D v16.3Web Areas per Programmierung verwalten |
||
|
4D v16.3
Web Areas per Programmierung verwalten
Web Areas per Programmierung verwalten
Die Befehle unter diesem Thema steuern Formularobjekte vom Typ Web Area per Programmierung. Web Areas können verschiedene Arten von Web Inhalt (*) in Ihrer 4D Umgebung anzeigen: HTML Seiten mit statischem oder dynamischem Inhalt, Dateien, Bilder, Javascript, ... . Das folgende Bild zeigt einen Web Bereich innerhalb eines Formulars mit einer HTML Seite: (*) Dagegen wird die Verwendung von Web Plug-Ins und Java Applets nicht empfohlen (siehe Hinweise zum Verwenden von Web Bereichen). Zusätzlich zu diesen Befehlen ermöglichen verschiedene Standardaktionen und Formularereignisse, die Funktionsweise der Web Bereiche zu steuern. Über spezifische Variablen lassen sich Informationen zwischen dem Web Bereich und der 4D Umgebung austauschen. Auf diese Weise können Sie in Ihren Formularen einen Web Browser mit Grundfunktionen nutzen. Sie erstellen einen Web Bereich über eine Variante der Schaltfläche Plug-in Bereich/Unterformular in der Objektleiste des 4D Formulareditors. Weitere Informationen dazu finden Sie im Abschnitt Web Areas im Handbuch 4D Designmodus. Hinweis: Bei Anzeige in einem neuen Prozess, insbesondere über die Funktion New process, muss im Parameter Stapel der Standardwert (0) verwendet werden, damit der Bereich korrekt angezeigt wird. Ein Web Bereich hat, wie andere dynamische Formularobjekte, einen Objektnamen und einen Variablennamen, über die er sich per Programmierung steuern lässt (Befehle OBJECT SET VISIBLE und OBJECT MOVE). Standardmäßig ist eine Variable vom Typ Text zugeordnet. Hinweis: Die dem Web Bereich zugeordnete Textvariable enthält keine Referenz. Sie kann deshalb nicht als Parameter für eine Methode übergeben werden. Für einen Web Bereich mit Namen MyArea ist z.B. der folgende Code nicht verwendbar: Mymethod(MyArea) Code für Mymethod: WA REFRESH CURRENT URL($1)\\Das funktioniert nicht Für diese Art der Programmierung müssen Sie Zeiger verwenden: Mymethod(->MyArea) Code für Mymethod: WA REFRESH CURRENT URL($1->)\\Das funktioniert Zusätzlich zur standardmäßigen Objektvariablen (siehe voriger Abschnitt) werden jedem Web Bereich automatisch zwei spezifische Variablen zugewiesen:
Sie können beliebige Namen vergeben. Über die Eigenschaftenliste können Sie auf die Variablen zugreifen: "URL" ist eine Variable vom Typ String. Sie enthält die geladene URL oder die vom zugeordneten Web Bereich gerade geladene URL.
Variable URL und Befehl WA OPEN URL
Die Variable "Ablauf" ist vom Typ Lange Ganzzahl. Sie enthält einen Wert zwischen 0 und 100. Das ist der Prozentsatz beim Laden der Seite, die im Web Bereich angezeigt wird. 4D aktualisiert diese Variable automatisch. Sie lässt sich nicht manuell verändern Sie können 4D Methoden über JavaScript Code aufrufen, der in einem Web Bereich ausgeführt wird und Werte zurückerhalten. Wichtig: Dieses Feature ist nur verfügbar, wenn der Web Bereich die eingebundene Web Rendering Engine verwendet. Damit Sie 4D Methoden aus einem Web Bereich aufrufen können, müssen Sie in der Eigenschaftenliste unter der Gruppe "Web Area" die Option Zugriff auf 4D Methoden aufrufen:
Hinweis: Diese Option erscheint nur, wenn die Option Integrierte Web Rendering Engine verwenden markiert ist. Ist diese Eigenschaft markiert, wird im Web Bereich ein spezifisches JavaScript Objekt ($4d) eingerichtet, über das Sie Aufrufe von 4D Projektmethoden steuern können. Ist die Option Zugriff auf 4D Methoden markiert, bietet das in 4D integrierte Web Kit im Web Bereich ein JavaScript Objekt mit Namen $4d, das Sie jeder 4D Projektmethode mit "." voranstellen können. Um z.B. die 4D Methode HelloWorld aufzurufen, führen Sie einfach folgende Anweisung aus: $4d.HelloWorld(); Warnung: JavaScript unterscheidet zwischen Groß- und Kleinschreibung. Achten Sie deshalb darauf, dass das Objekt $4d lautet (mit kleinem "d"). Die Syntax zum Aufrufen von 4D Methoden lautet: $4d.4DMethodName(param1,paramN,function(result){})
Wir nehmen eine 4D Projektmethode mit Namen today. Sie empfängt keine Parameter, gibt aber das aktuelle Datum als Zeichenkette zurück. 4D Code der Methode today: C_TEXT($0) Die 4D Methode lässt sich im Web Bereich mit folgender Syntax aufrufen: $4d.today() Die 4D Methode empfängt keine Parameter, gibt aber den Wert von $0 in der Callback Funktion zurück, die 4D nach Ausführen der Methode aufruft. Hier der Code der HTML Seite: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript"> $4d.today(function(dollarZero) { var curDate = dollarZero; document.getElementById("mydiv").innerHTML=curDate; }); </script> </head> <body>Heute ist: <div id="mydiv"></div> </body> </html> Die 4D Projektmethode calcSum empfängt Parameter ($1...$n) und gibt deren Summe in $0 zurück: 4D Code der Methode calcSum: C_REAL(${1}) // empfängt n Parameter vom Typ Zahl Der JavaScript Code im Web Bereich ist: $4d.calcSum(33, 45, 75, 102.5, 7, function(dollarZero) { var result = dollarZero // Ergebnis ist 262.5 }); Es gibt spezifische Formularereignisse, um Web Bereiche per Programmierung zu steuern, insbesondere zur Aktivierung von Links:
Darüberhinaus unterstützen Web Bereiche folgende generische Formularereignisse:
Weitere Informationen dazu finden Sie unter der Funktion Form event. Sie können in Web Bereichen Ihrer Formulare den Web Inspektor ansehen und verwenden. Das ist ein Debugger innerhalb der eingebundenen Web Engine, mit dem Sie Code und Informationsfluss der Web Seiten analysieren können. Sie müssen folgende Einstellungen machen, damit der Web Inspektor in einem Web Bereich erscheint:
Haben Sie die Einstellungen wie oben beschrieben ausgeführt, erscheint im Kontextmenü des Bereichs der Eintrag Inspect Element: Wählen Sie diesen Eintrag, erscheint das Fenster des Web Inspektors: Der Web Inspektor ist in der eingebundenen Web Rendering Engine enthalten. Ausführliche Informationen zu den Features dieses Debugger finden Sie in der Dokumentation zur Web Rendering Engine. Beim Ausführen des Formulars sind im Web Bereich die Standardfunktionen der Browser-Oberfläche verfügbar, die Interaktionen mit anderen Formularbereichen ermöglichen:
Bedingt durch den erneuten Fensteraufbau gibt es beim Einfügen eines Web Bereichs in ein Unterformular folgende Einschränkungen:
Unter Windows raten wir davon ab, über einen Web Bereich auf den Web Server der 4D Anwendung zuzugreifen, der diesen Bereich enthält. Diese Konfiguration kann zu einem Konflikt führen, der die Anwendung einfriert. Ein Remote 4D kann natürlich auf den Web Server von 4D Server zugreifen, jedoch nicht auf seinen eigenen Web Server. Wir empfehlen, Web Plug-Ins und Java Applets in Web Areas nicht zu verwenden, da dies zu instabiler Arbeitsweise von 4D führen kann, insbesondere beim Verwalten von Ereignissen. URLs, die auf Mac OS in Web Bereichen per Programmierung gesteuert werden, müssen mit dem Protokoll beginnen. Beispiel: Sie müssen den vollständigen String "http://www.mysite.com" und nicht nur "www.mysite.com" angeben.
|
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v16) |