Version 2003 (Geändert)
4D Web Server kann in zwei verschiedenen Modi arbeiten: im nicht-kontextuellen Modus (Standardeinstellung) und im kontextuellen Modus. Dieser Abschnitt beschreibt die beiden Modi und erläutert die Eigenheiten des kontextuellen Modus.
Achtung: Der kontextuelle Modus ist nur mit 4th Dimension und 4D Server verwendbar. Der Web Server von 4D Client unterstützt diesen Modus nicht.
Hinweis: Der Abschnitt Web Server, Einstieg enthält ein ausführliches Beispiel zum Veröffentlichen einer Datenbank im kontextuellen Modus.
Nicht-kontextueller und kontextueller Modus
Der Web Server von 4th Dimension Version 2003 verwendet standardmäßig den nicht-kontextuellen Modus. In diesem Modus ist die Arbeitsweise des 4D Web Server vergleichbar mit den standardmäßigen Web Servern: Wird eine HTTP Anfrage von einem Browser empfangen (URL, posted form, etc.), bearbeitet der Server die Anfrage, gibt dann bei Bedarf eine Antwort zurück, sendet z.B. eine Web Seite. Zwischen Server und Browser wird keine spezifische Verbindung aufrechterhalten.
Im nicht-kontextuellen Modus kann der 4D Web Server statische oder halbdynamische Seiten senden. Über halbdynamische Seiten können Sie auf Daten in der Datenbank zugreifen. Mit halbdynamischen Seiten können Sie Web Seiten erstellen, verwalten und senden, deren Inhalt komplett oder teilweise aus von 4D ausgeführten Operationen hervorgeht. Der nicht-kontextuelle Modus genügt in der Regel den meisten Ansprüchen zum Entwickeln der Web Site.
Im kontextuellen Modus löst die Verbindung von einem Web Browser das Erstellen eines sog. Kontexts aus, in welchem die aktuelle Auswahl, seine Variablen, etc. gelegt werden. In gewisser Weise wird jeder Browser als ein 4D Client betrachtet, der sich im Runtime Modus an die Datenbank anmeldet. Der Kontext wird über spezifische Web Verbindungsprozesse verwaltet.
Über diesen Modus wird die 4D Datenbank unmittelbar im Web veröffentlicht, ohne dass Web Seiten erstellt werden müssen. 4D verwaltet und sendet dynamische Seiten an den Browser, die auf der automatischen Konvertierung von Menüleisten und Formularen in HTML beruhen. Sie können auch im kontextuellen Modus halbdynamische oder statische Seiten senden. Sie können ebenso HTML oder Javascript Code in 4D Formulare einfügen, um in Seiten, die im Web angezeigt werden, Funktionen hinzuzufügen.
4D steuert in diesem Modus auch den gleichzeitigen Zugriff auf die Daten: Lädt ein 4D Client einen Datensatz, sperrt 4D ihn für andere Benutzer in transparenter Weise, unabhängig, ob es Browser oder Client Rechner sind. Ausserdem lässt 4D zu, dass Sie während einer Transaktion mit einem Web Server Daten eingeben, so wie es mit 4th Dimension oder 4D Client durchgeführt wird. Auf diese Weise kann der 4D Web Server die Aktionen des Browsers steuern und Datenintegrität gewährleisten.
Zur Wahrung der Datenintegrität sind im kontextuellen Modus verschiedene Einschränkungen notwendig:
- Web Browser ermöglichen, von einer Webseite zu einer anderen, von einer Site zu einer anderen, etc. zu "surfen". Mit einer Datenbank im Client/Server-Betrieb muss dieses Navigieren unter Berücksichtigung der Logik von Transaktionen der Datenbank erfolgen. Jede Eingabe, die der Benutzer in einem Datensatz macht, muss bestätigt oder annulliert werden, damit kein unsicherer Status bestehen bleibt. Die Engine des 4D Web Servers enthält automatische Funktionsabläufe zum Verwalten von Datenbanksitzungen und Kontexten. Sie unterbinden die Verwendung bestimmter Standardfunktionen des Browsers, wie Reload, Previous page, etc.
- Der Verbindungsprozess, der den Kontext aufrechterhält, bleibt aktiv bis das Timeout des Browsers, das in den Einstellungen der Datenbank definiert wurde, erreicht ist. Hat der Browser z.B. in der Zwischenzeit die Site verlassen, ist der Kontext "vergeudet".
Aufgrund dieser Einschränkungen eignet sich der kontextuelle Modus eher für das Intranet oder zum Einsatz in spezifischen Internet Anwendungen.
Nachfolgendes Schema gibt einen Überblick über die Funktionsweise des 4D Web Servers:
Modus wählen
Sie wählen den Modus für den 4D Web Server folgendermaßen:
Beim Starten des Servers über die Option Automatisch starten in den Einstellungen der Datenbank.
Während Benutzen des Web Servers über bestimmte URL oder Befehle. Spezifische URL und Befehle können zum Ändern des Modus dienen. In der Regel wird der aktuelle Modus beibehalten, solange keine URL bzw. kein Befehl eine Änderung auslöst.
Kontextuellen Modus beim Starten definieren
Der Web Server startet standardmässig im nicht-kontextuellen Modus. Sie können den Server aber auch direkt im kontextuellen Modus starten, d.h. der Kontext wird automatisch hergestellt, wenn sich ein Benutzer an die Datenbank anmeldet. Dazu gehen Sie in den Einstellungen der Datenbank auf die Seite Veröffentlichung und markieren die Option Kontext Modus (ständiger Kontext).
Befehle und URL, um Modus zu wechseln
Sie können den Modus während Operationen der Datenbank durch folgende Elemente wechseln:
Wechsel in den nicht-kontextuellen Modus:
SEND HTML BLOB mit dem optionalen Parameter KeinKontext gesetzt auf Wahr | |
SEND HTML TEXT mit dem optionalen Parameter KeinKontext gesetzt auf Wahr | |
SEND HTTP REDIRECT | |
URL beginnend mit /ACTION |
Wechsel in kontextuellen Modus:
URL beginnend mit /4DMETHOD/MyMethod | |
Wird diese URL gesendet, erstellt der 4D Web Server einen neuen Kontext und führt | |
folgende Operationen aus: | |
- Die Datenbankmethode On Web Authentication wird ausgeführt (sofern vorhanden), | |
- Die Datenbankmethode On Web Connection wird ausgeführt (sofern vorhanden), | |
in diesem Fall entspricht $1 gleich /4DMETHOD/MyMethod anstatt / (Schrägstrich) | |
- Die Methode wird im neu erstellten Kontext ausgeführt. |
Anzahl der Kontexte in Gebrauch
Je nach Art der Aktion verwenden bestimmte Web Prozesse Web Kontexte, andere wiederum nicht. Über den Befehl PROCESS PROPERTIES können Sie feststellen, wieviel Kontexte in Gebrauch sind egal ob im kontextuellen oder im nicht-kontextuellen Modus. Dieser Befehl gibt über den Parameter Ursprung an, ob ein Web Kontext in Gebrauch ist (-11, Web Prozess mit Kontext) oder nicht (-3, Web Prozess ohne Kontext).
Kontext der Web Verbindung verwalten
Kontextnummer der Web Verbindung
Die Nummer im Namen des Web Verbindungsprozesses heisst Kontextnummer. Sie wird zufällig generiert und identifiziert lediglich jede Web Verbindung. Die Kontextnummer wird während der gesamten Web Verbindung sowohl in 4D als auch im Browser aufrechterhalten. In diesem Beispiel lautet sie 1165990315. Im hier gezeigten Fenster Web Browser erscheint diese Nummer in der URL im Bereich Adresse:
Die URL werden von 4D automatisch während der gesamten Web Sitzung verwaltet. Immer wenn über TCP/IP eine HTTP Anfrage empfangen wird, entnimmt 4D die Kontextnummer aus der URL und kann so die Anfrage an den richtigen Web Verbindungsprozess weiterleiten.
Mit Kontextnummern:
Kann 4D für jede Web Verbindung sowohl eine Web- als eine Datenbank-Sitzung aufrechterhalten.
Lassen sich mehrere miteinander konkurrierende Web Verbindungen verwalten.
Lassen sich spätere unerwünschte Verbindungen durch Einsatz von Bookmarks verhindern, da für jede Verbindung eine andere Kontextnummer eingerichtet wird.
Web und Datenbanksitzungen synchronisieren: Unterkontextnummer der Web Verbindung
Die Kontextnummer im oben gezeigten Fenster hat am Ende einen Punkt, gefolgt von einer Ziffer. Das ist die Unterkontextnummer. 4D verwaltet diese Nummer automatisch. Sie erhöht sich, immer wenn eine neue auf 4D basierende HTML Seite an den Browser gesendet wird. Diese Unterkontextnummer ist entscheidend zum Verwalten der Datenbanksitzung.
Der Web Browser enthält normalerweise Navigationssteuerungen, wie z.B. Schaltflächen für Vor und Zurück, Ablauffenster, etc.. Diese Steuerungen sind hilfreich zum Durchlaufen von Dokumenten, Übersichten, etc.. Sie eignen sich jedoch weniger zur Durchführung von Datenbanktransaktionen.
Fügt z.B. ein Web Anwender einen Datensatz in einer Tabelle hinzu, müssen Sie wissen, ob die Dateneingabe bestätigt ist, d.h. ob der Web Anwender im 4D Formular auf die Schaltfläche Bestätigen oder Abbrechen geklickt hat. Geht der Web Anwender an dieser Stelle auf eine andere Seite, verbleibt die Dateneingabe in einem unsicheren Status. Um dies zu verhindern, arbeitet 4D mit der Unterkontextnummer. Damit wird die Web Sitzung im Browser mit der Datenbanksitzung in 4D synchronisiert.
Immer wenn ein Formular übertragen oder über den Browser eine HTTP Frage an 4D gesendet wird und eine Unstimmigkeit zwischen Web Sitzung und Datenbank Sitzung erkannt wird, sendet 4D die Meldung "Sie haben über die Navigationssteuerungen des Browsers ein Formular verlassen, das bestätigt werden muss. 4th Dimension kehrt nicht mehr zu diesem Formular zurück, so dass Sie die Daten bestätigen oder abbrechen müssen." 4D kehrt dann über die Unterkontextnummer zurück zur Dateneingabeseite im Web.
Diese Übereinstimmung ist auch wesentlich für den Web Verbindungsprozess. Sie müssen ihn korrekt verlassen, z.B den Befehl ADD RECORD ([...]) um mit der Ausführung Ihres 4D Code fortzufahren.
Die Synchronisierung ist selektiv. Ist die aktuelle Web Seite auf dem Browser ein 4D Formular (ADD RECORD, DISPLAY SELECTION, DIALOG, etc.), wird die Synchronisierung eventuell durchgeführt.
Ist die aktuelle Web Seite eine HTML Seite, auf die per Link von einer anderen Web Seite zugegriffen wird (über den Befehl SEND HTML FILE), können Sie frei in den Seiten navigieren.
Wir gehen aus von folgendem Teil eines 4D Codes:
ADD RECORD ([Customers]) SEND HTML FILE ("anyPage.HTM") DISPLAY SELECTION ([Products])
Folgendes Schema zeigt, was während der Ausführung in 4D und im Web Browser passiert.
Rote Linien bezeichnen die Umwandlung und Übertragung von 4D Formularen.
Blaue Linien bezeichnen das Vor- und Zurückwechseln zwischen HTML Seiten, die auf 4D oder auch nicht auf 4D basieren.
Bereiche in Grün bezeichnen HTML Seiten, die nicht auf 4D basieren.
Beschreibung der Schritte
(1) Der Befehl ADD RECORD wird ausgeführt. 4D wandelt das aktuelle Eingabeformular der Tabelle in eine HTML Seite um und sendet sie an den Web Browser. Bei einem mehrseitigen Formular können Sie über die Standard-Schaltflächen in den Formularseiten blättern. Diese Navigation basiert auf 4D und wird via Web Formularübertragung von 4D transparent ausgeführt.
(2) Während der Dateneingabe, also innerhalb des Aufrufs von ADD RECORD, wird auf eine Schaltfläche geklickt. Die dazugehörige Objektmethode löst den Aufruf von SEND HTML FILE aus.
(3) Innerhalb des Aufrufs von SEND HTML FILE ist es möglich, in den Seiten zu blättern, wenn die HTML Seite Links enthält. Beim Ausführen von SEND HTML FILE("") wird der HTML Modus evtl. verlassen.
(4) Die Objektmethode zur angeklickten Schaltfläche und die durch ADD RECORD hervorgerufene Dateneingabe werden ausgeführt. Beachten Sie, dass die Schritte (2) und (3) innerhalb der Dateneingabe mehrmals ablaufen können.
(5) Die Dateneingabe wird dann bestätigt oder annulliert. Der Web Verbindungsprozess wird ausgeführt.
(6) Als nächstes wird der Befehl SEND HTML FILE aufgerufen.
(7) Dieser Schritt ist analog zu Schritt 3. Enthält die HTML Seite Links, ist es möglich, durch mehrere Seiten zu blättern. Beim Ausführen von SEND HTML FILE("") wird der HTML Modus evtl. verlassen.
(8) Der Web Verbindungsprozess wird ausgeführt.
(9) Der Befehl DISPLAY SELECTION wird ausgeführt. 4D wandelt das aktuelle Ausgabeformular der Tabelle in eine HTML Seite um und sendet sie an den Web Browser. Während dem Befehl DISPLAY SELECTION navigiert 4D transparent zwischen der Auswahlseite und dem Anzeigen von einzelnen Datensätzen. 4D verwendet zum Steuern von Dateneingabe und Datensatz sperren über die Web Formularübertragung auch MODIFY SELECTION.
(10) Während dem Durchlaufen der Auswahl wird auf eine Schaltfläche im Fussteil des Formulars geklickt. Die dazugehörige Objektmethode löst den Aufruf von SEND HTML FILE aus.
(11) Dieser Schritt ist analog zu den Schritten 7 und 3. Enthält die HTML Seite Links, ist es möglich, durch mehrere Seiten zu blättern. Beim Ausführen von SEND HTML FILE("") wird der HTML Modus evtl. verlassen.
(12) Die Objektmethode der angeklickten Schaltfläche und die Anzeige der Auswahl, ausgelöst durch DISPLAY SELECTION, werden ausgeführt. Beachten Sie, dass die Schritte (10) und (11) während dem Durchlaufen der Auswahl mehrmals ablaufen können.
(13) Die Auswahlanzeige wird dann verlassen und der Web Verbindungsprozess wird ausgeführt.
Usw...
Die freie Navigation im Web (z.B. mit den Schaltflächen Vor und Zurück) ist in jedem Befehl SEND HTML FILE möglich (die grünen Bereiche im Schema). Sie können aber auch jede beliebige auf 4D basierende HTML Seite (Dateneingabe, Auswahlanzeige... inkl. Standard Dialogboxen, die über CONFIRM oder Request angezeigt werden) über eine der Navigationssteuerungen des Browsers verlassen. 4D synchronisiert evtl. die Web- und die Datenbanksitzung durch Zurückgehen in die Web Seite, deren Unterkontextnummer gleich ist mit der Nummer des ausgelösten 4D Befehls, der gerade im Web Verbindungsprozess ausgeführt wird.
Web Verbindungsprozess und Web Sitzung
Aus der Sicht des Benutzers steuern die Aktionen des Benutzers eine Web Sitzung auf dem Web Browser.
Aus der Sicht der Programmierung steuert der Web Verbindungsprozess die Web Sitzung, und nicht umgekehrt. Der Web Browser zeigt die vom Web Verbindungsprozess gesendeten Seiten an, der entweder:
4D Code ausführt oder
Auf die Übertragung der aktuellen Web Seite vom Browser wartet.
Aus der Sicht der Struktur sollte der Web Verbindungsprozess als ein 4D Prozess gesehen werden, der im Bereich von 4th Dimension oder 4D Server ausgeführt wird. Seine Benutzeroberfläche wird über Fernanbindung auf dem angeschlossenen Web Browser wiedergegeben.
Berücksichtigen Sie beim Entwickeln von Anwendungen für Web Datenbanken immer diese Dualität des Web Verbindungsprozesses. Zum Beispiel:
Während jeder Art von Dateneingabe ist die Hauptmenüleiste die des Browsers und nicht die von 4D. Zählen Sie in einem Formular nicht auf die 4D Menüleiste; sie befindet sich auf dem Rechner des Web Servers, nicht auf dem Rechner des Web Browsers.
Bedenken Sie beim Einrichten von Formularen für den Web Browser, dass die Zuordnung von Funktionalitäten auf HTML begrenzt ist (manchmal mit einigen 4D Zusätzen). Verlassen Sie sich nicht auf den gesamten Umfang der Funktionalitäten für 4D Formulare, wie z.B. Objekttypen und Formularereignisse). Weitere Informationen dazu finden Sie im Abschnitt 4D Objekte mit HTML Objekten verbinden.
Der Befehl CALL PROCESS aus der Interprozesskommunikation, angewendet auf einen Web Verbindungsprozess, hat keine Auswirkung, da seine aktuelle aktive Form auf dem Web Browser angezeigt wird. Dagegen kann ein Web Verbindungsprozess CALL PROCESS für einen anderen 4D Prozess ausführen.
Mit den Befehlen GET PROCESS VARIABLE und SET PROCESS VARIABLE läuft die Interprozesskommunikation in beiden Richtungen ohne Unterschied, denn diese Befehle benötigen keinen Prozess mit Benutzerschnittstelle.
Web Verbindungs-Timeout
Wie bereits oben erläutert, führt ein Web Verbindungsprozess im kontextuellen Modus entweder 4D Code aus oder wartet auf die Übertragung der derzeit im Browser angezeigten Web Seite. Im letzten Fall wartet ein Web Verbindungsprozess die Zeitspanne ab, die größer oder gleich der Zeit ist, die im Fenster Einstellungen der Datenbank unter dem Thema Web auf der Seite Erweitert als Timeout für inaktive Web Prozesse bzw. per Programmierung mit dem Befehl SET WEB TIMEOUT festgelegt ist.
Die Einstellung der Web Server Verbindungs-Timeout gilt für die Dauer der Datenbanksitzung. Alle Web Verbindungsprozesse richten sich nach der hier festgelegten Zeit. Standardmäßig sind 5 Minuten eingestellt. Eine Änderung wirkt sich sofort auf die Prozesse aus.
Hinweis: Mit dem Befehl SET WEB TIMEOUT können Sie für jeden Web Prozess ein eigenes Timeout festliegen.
Sie können dieses Timeout beliebig erhöhen oder verkürzen. Sie können das Timeout zum Beispiel erhöhen, wenn Ihre Anwendung Web Benutzern erlaubt, in den über Ihre Datenbank aufgebauten Seiten via HTML Links zu anderen Web Sites zu springen. So können die Benutzer länger in anderen Webs surfen, ohne dass ihre Verbindung zur Datenbank geschlossen wird.
Warnung: Es gibt keinen Weg, einen Web Verbindungsprozess per Programmierung zu beenden. Bei einem langen Timeout wartet der Prozess diese Zeitspanne ab, selbst wenn der Web Benutzer bereits seit geraumer Zeit nicht mehr mit der Web Verbindung arbeitet. Ohne Timeout stoppen Web Verbindungsprozesse nur beim Verlassen der Datenbank.
Tip: Im Gegensatz zum Prozess Web Server können Sie Web Verbindungsprozesse über den Befehl Abbrechen aus dem Menü Prozess abbrechen. Dieses Menü ist in der Designumgebung verfügbar, wenn das Fenster Prozessliste auf oberster Ebene liegt.
Automatische HTML Konvertierung
Dieser Abschnitt beschreibt die Elemente, Objekte und Mechanismen, die 4th Dimension im kontextuellen Modus beim Übertragen der Datenbank automatisch in HTML umwandelt
Menüleisten
Jede Menüleiste wird in eine HTML Seite übertragen. Jeder Menütitel erscheint als Text, jede Menüzeile als Link zu 4D Methoden. Menübefehle, die automatische Aktionen ausführen, erscheinen als "Text only".
Beim Anklicken einer Menüzeile im Web Browser startet die Ausführung der dazugehörigen 4D Methode im Web Verbindungsprozess.
Hinweis: Wurde einem Menübefehl die Eigenschaft "Starte neuen Prozess zugewiesen", wird die dazugehörige Methode vom 4D Web Server über die URL 4D METHOD in einem neuen Web Verbindungsprozess aufgerufen. In diesem Fall muss die Methode zum Menü das Attribut Per 4DACTION, 4DMETHOD und 4DSCRIPT zugänglich haben. Das ist bei neuen Datenbanken standardmäßig inaktiv. Weitere Informationen dazu finden Sie im Abschnitt Sicherheit der Verbindung.
Formulare
Objekte werden von oben nach unten und von links nach rechts übertragen. Beachten Sie jedoch, dass HTML eine Word Prozessor orientierte Anwendung ist; deshalb haben horizontale Objekte eine andere Position und können sich evtl. überschneiden.
Mehrseitige Formulare werden transparent verwaltet, inkl. der Seite Null und vererbter Formulare.
Automatische Aktionen werden, sofern geeignet, transparent verwaltet.
Formularereignisse (On Load, On Unload, On Clicked) werden unterstützt, andere Ereignisse dagegen nicht.
Tags für Kopf-, Haupt-, und Fussteil sowie Umbruch werden beim Aufrufen von den Befehlen DISPLAY SELECTION und MODIFY SELECTION berücksichtigt. Der Kopfteil des Formulars erscheint einmal zu Beginn der HTML Seite, der Hauptteil wird so oft wie notwendig wiederholt. Variablen im Fussteil, z.B. Schaltflächen, erscheinen am Ende der HTML Seite direkt unter den Links zum Blättern für eine automatische Auswahl.
Tags, die Schaltflächen zugeordnet sind, die im Formulareditor als Bilder angezeigt werden, erscheinen im Browser wenn der Browser das Anzeigen dieser Tags zulässt.
Ein wiederholtes Bild (Anzeige "Wiederholt"), welches im 4D Formulareditor in die Koordinaten (0,0,x,x) eingefügt wird, wird als Hintergrundbild zum Browser gesendet. Achten Sie darauf, dass die Bilder nicht zu dunkel sind.
Hinweis: Der 4D Web Server generiert HTML Seiten mit CSS1. Denn dieses Erscheinungsbild ist den Formularen in 4th Dimension ziemlich ähnlich. Die Merkmale für CSS1 (Cascading Style Sheet 1) wurden vom Konsortium W3C (World Wide Web Consortium) festgelegt. Diese definieren das Erscheinungsbild eines Dokuments: Schriftart und -größe, Farbe, Stil für Überschriften und Text, Zeilenabstand, etc. CSS Dokumente werden im MIME Typ "text/css" gesendet und weder im kontextuellen noch im nicht-kontextuellen Modus von 4D bearbeitet.
Zur Wahrung der Kompatibilität können Sie über den Befehl SET DATABASE PARAMETER (Selektor 8, Web Conversion Mode) den Modus zur Web Konvertierung für Formulare verändern.
Feldobjekte
Beim Übertragen eines 4D Formulars in eine HTML Seite werden Feldobjekte wie folgt übertragen:
4D Feldtyp | HTML Objekt | HTML Marker |
Alphanumerisch | Textfeld (*) | <EINGABETYP="Text" ...> |
Text | Textfeld (*) | <TEXTBEREICH ...> (**) |
<EINGABETYP="Text" ...> (***) | ||
Zahl | Textfeld (*) | <EINGABETYP="Text" ...> |
Ganzzahl | Textfeld (*) | <EINGABETYP="Text" ...> |
Lange Ganzahl | Textfeld (*) | <EINGABETYP="Text" ...> |
Datum | Textfeld (*) | <EINGABETYP="Text" ...> |
Zeit | Textfeld (*) | <EINGABETYP="Text" ...> |
Boolean | Optionsfeld oder Kontrollkästchen (*) | <EINGABETYP="Optionsf" ...> |
<EINGABETYP="Kontrollk" ...> | ||
Bild | Bild (immer nicht eingebbar) | <IMG SRC="..." ...> |
Untertabelle | Keine HTML Unterstützung | Keine |
BLOB | Keine HTML Unterstützung | Keine |
(*) oder Text, wenn nicht eingebbar
(**) bei mehrzeiligem Text
(***) Bei einzeiligem oder leerem Text
Hinweis: Eingebbare Variablen verhalten sich wie die Datenfelder desselben Typs.
Formularobjekte
Beim Übertragen eines 4D Formulars in eine HTML Seite werden Formularobjekte wie folgt übertragen:
4D Formularobjekte | HTML Objekt | HTML Marker |
Linie | Horizontale Linie (1) | <HR> |
Rechteck | Rechteck | von CSS1 verwaltet |
Oval | Keine HTML Unterstützung | Keine |
abgerund. Rechteck | Keine HTML Unterstützung | Keine |
Statisches Bild | Bild oder Image Map (2) | <IMG SRC="..."> |
<EINGABETYP="Bild" ...> | ||
Group Box | Text | Text mit evtl.Schriftbeschreibung |
Statischer Text | Text | Text mit evtl. Schriftbeschreibung |
Schaltfläche | Schaltfläche Übertragen | <EINGABETYP="Übertragen" ...> |
Standardschaltfläche | Schaltfläche Übertragen | <EINGABETYP="Übertragen" ...> |
Optionsfeld | Optionsfeld (3) | <EINGABETYP="Optionsfeld" ...> |
Kontrollkästchen | Kontrollkästchen | <EINGABETYP="Kontrollkästchen" ...> |
PopUp-Menü | DropDown List | <SELECT ...>...</SELECT> |
DropDown-Liste | DropDown List | <SELECT ...>...</SELECT> |
Menü/DropDown Liste | DropDown List | <SELECT ...>...</SELECT> |
Combo Box | DropDown List | <SELECT ...>...</SELECT> |
Rollbarer Bereich | Rollbare Liste (4) | <SELECT ...>...</SELECT> |
Unsichtbare Schaltfläche | Siehe Hinweis 2 | |
Invertierte Schaltfläche | Siehe Hinweis 2 | |
3D Schaltfläche | Siehe Hinweis 2 | |
Schaltflächenraster | Siehe Hinweis 2 | |
Graph | Bild (nicht eingebbar) | <IMG SRC="..." ...> |
Plug-In | Bild (nicht eingebbar) | <IMG SRC="..." ...> |
Folgende Objekte werden von HTML nicht unterstützt und deshalb beim Übertragen ignoriert:
Hierarchisches PopUp Menü, Hierarchische Liste, Unterformular, Registerkarten, Optionsbild, Thermometer, Lineal, Halbkreisskala, Bildmenü, Bildschaltfläche, 3D Kontrollkästchen, 3D Optionsfeld.
Hinweise
1. HTML unterstützt nur horizontale Linien; andere Linien werden demnach ignoriert.
2. Den unsichtbaren Schaltflächen ähnlich sind Objekte vom Typ Unsichtbare Schaltfläche, Invertierte Schaltfläche, 3D Schaltfläche und Schaltflächenraster. Ein statisches Bild, das nicht von einer dieser Schaltflächen überlappt wird, wird als statisches Bild übertragen. Wird es von mindestens einer dieser Schaltflächen überlappt, wird es als ein "Server-Side Image Map" übertragen. Im Web Browser wird das Bild als ein" Server-Side Image Map" behandelt. Wird in 4D eine Übertragung empfangen, berechnet 4D die Position des Klickens neu, um ein Ereignis On Clicked für die entsprechende Schaltfläche zu erzeugen, so als ob die Schaltfläche angeklickt worden wäre. Sie verwalten solche Schaltflächen über eine Formularmethode oder die dazugehörigen Objektmethoden wie in jeder regulären 4D Oberfläche. Auf diese Weise können Sie sehr einfach "Web Image Mapping" verwalten. Solch eine Schaltfläche, die nicht mit einem beliebigen Objekt mit statischem Bild überlappt, wird während der Übertragung ignoriert.
3. Gruppierte Optionsfelder bleiben durch die Übertragung erhalten.
4. Gruppierte rollbare Bereiche werden in HTML nicht unterstützt. 4D übersetzt sie als unabhängige rollbare Listen, die auf einer Linie liegen.
5. Registerkarten (vom Typ Array oder über Werte erstellt, die in den Objekteigenschaften definiert wurden) werden in URL Listen konvertiert.
Sind die Elemente des Arrays leere Strings, zeigt 4D auf dem Browser 1, 2, 3 an.
6. Plug-In Bereiche lassen sich auch im Web veröffentlichen, wenn sie zuerst in HTML, Bild oder Image Map konvertiert werden. Mit letzterem können Sie Mausklicks innerhalb von Plug-In Bereichen verwalten. Beispiel: Das integrierte Plug-In 4D Chart wird in einem Image Map veröffentlicht, der Bereich 4D_Pack_AP, External clock als Bild. Die Art, wie ein Plug-In Bereich innerhalb eines 4D Formulars im Web veröffentlicht wird, richtet sich nach den Einstellungen des Plug-In Editors.
Auswahl anzeigen/ Auswahl ändern
Die Funktion UserSet wird nicht unterstützt
4D liefert einen Mechanismus, der die Auswahl automatisch in Seiten anzeigt. Weitere Informationen dazu finden Sie in der Beschreibung zum Befehl SET WEB DISPLAY LIMITS.
4D Befehle
Beim Entwickeln einer 4D Web Datenbank taucht evtl. die Frage auf, was beim Aufrufen von diesem oder jenem Befehl passiert. Wird er auf dem Rechner des Web Servers oder dem Rechner des Web Browsers ausgeführt? Der Web Verbindungsprozess wird auf dem Rechner mit dem Web Server ausgeführt, seine Benutzeroberfläche ist jedoch über Fernanbindung mit dem angeschlossenen Web Browser wiedergegeben. Folglich lassen sich die 4D Befehle für das Entwickeln einer 4D Web Datenbank wie folgt klassifizieren:
Befehle, die bei der Ausführung innerhalb eines Web Verbindungsprozesses nicht beeinträchtigt werden.
Ein Befehl wie CREATE RECORD arbeitet während der Ausführung des Prozesses; in diesem Fall erstellt er einen Datensatz innerhalb des Web Verbindungsprozesses. Dasselbe gilt für Funktionen wie Screen width, die die Bildschirmbreite des Web Server Rechners zurückgibt (der Rechner, auf dem der Prozess ausgeführt wird).
Befehle mit zusätzlich eingebauten Features für transparente Web Unterstützung
Befehlsname | Bemerkung |
ADD RECORD | Automatische Übersetzung des Formulars, inkl. Mehrseitigkeit |
ALERT | Automatische Übersetzung der Dialogbox |
CONFIRM | Automatische Übersetzung der Dialogbox |
DIALOG | Automatische Übersetzung des Formulars, inkl. Mehrseitigkeit |
DISPLAY SELECTION | Automatische Übersetzung des Formulars |
Eingebaute Seitenanzeige im Web | |
Die Funktion UserSet wird nicht unterstützt | |
MODIFY RECORD | Automatische Übersetzung des Formulars, inkl. Mehrseitigkeit |
MODIFY SELECTION | Automatische Übersetzung des Formulars |
Eingebaute Seitenanzeige im Web | |
Die Funktion UserSet wird nicht unterstützt | |
QUERY | Unterstützung des Dialogfensters für Standardsuche |
QUERY BY EXAMPLE | Automatische Übersetzung des Formulars, inkl. Mehrseitigkeit |
Request | Automatische Übersetzung der Dialogbox |
REDRAW | Aktualisert das im Browser angezeigte Formular |
Befehle, wenn Sie wissen, was Sie ausführen möchten
Folgende Befehle werden lokal auf dem Rechner des Web Servers ausgeführt.
Sie können zum Beispiel das Drucken einer Auswahl von einem Web Browser aus auslösen. Der Druckvorgang dagegen wird auf dem Rechner mit dem Web Server ausgeführt.
Ist eine Komponente der Benutzerschnittstelle beteiligt, erscheint sie auf dem Rechner des Web Servers, z.B., Open document("") vs Open Document("This document"). Sie sollten solche Aufrufe vermeiden, da der Web Browser auf Antwort wartet, bis das Dialogfenster auf dem Rechner des Web Servers geschlossen wird. Sind keine Dialogboxen beteiligt, können Sie diese Routinen ohne Weiteres aufrufen.
Befehlsname | Bemerkung |
Append document | OK, wenn keine Dialogbox der Datei beteiligt ist |
BEEP | Piepst auf dem Rechner des Web Servers |
Create document | OK, wenn keine Dialogbox der Datei beteiligt ist |
DISPLAY RECORD | Ohne Auswirkung |
EXPORT DIF | OK, wenn keine Dialogbox der Datei beteiligt ist |
EXPORT SYLK | OK, wenn keine Dialogbox der Datei beteiligt ist |
EXPORT TEXT | OK, wenn keine Dialogbox der Datei beteiligt ist |
IMPORT DIF | OK, wenn keine Dialogbox der Datei beteiligt ist |
IMPORT SYLK | OK, wenn keine Dialogbox der Datei beteiligt ist |
IMPORT TEXT | OK, wenn keine Dialogbox der Datei beteiligt ist |
LOAD SET | OK, wenn keine Dialogbox der Datei beteiligt ist |
LOAD VARIABLES | OK, wenn keine Dialogbox der Datei beteiligt ist |
MESSAGE | Meldung erscheint auf dem Rechner des Web Servers |
Open document | OK, wenn keine Dialogbox der Datei beteiligt ist |
Open external window | Fenster öffnet sich auf dem Rechner des Web Servers |
Open resource file | OK, wenn keine Dialogbox der Datei beteiligt ist |
Open window | Fenster öffnet sich auf dem Rechner des Web Servers |
PLAY | Ton wird auf dem 4D Rechner gespielt |
Print form | OK, wenn keine Dialogbox für Drucken beteiligt ist |
PRINT LABEL | OK, wenn keine Dialogbox für Drucken beteiligt ist |
PRINT RECORD | OK, wenn keine Dialogbox für Drucken beteiligt ist |
PRINT SELECTION | OK, wenn keine Dialogbox für Drucken beteiligt ist |
QUIT 4D | Wird unterstützt, |
Sie können den Web Server aus der Ferne abschalten | |
SAVE SET | OK, wenn keine Dialogbox der Datei beteiligt ist |
SAVE VARIABLES | OK, wenn keine Dialogbox der Datei beteiligt ist |
SELECT LOG FILE | OK, wenn keine Dialogbox der Datei beteiligt ist |
SET CHANNEL | OK, wenn keine Dialogbox der Datei beteiligt ist (Dokumente) |
TRACE | Debugger Fenster erscheint auf dem Rechner des Web Servers |
Befehle, die Web Verbindungsprozesse nicht unterstützen
Befehlsname | Bemerkung |
ADD DATA SEGMENT | Rufen Sie diesen Befehl NICHT in einem Web Verbindungsprozess. |
Sein Einsatz im Web ist nicht möglich. | |
ADD SUBRECORD | Rufen Sie diesen Befehl NICHT in einem Web Verbindungsprozess. |
Sein Einsatz im Web ist nicht möglich. | |
CHANGE ACCESS | Rufen Sie diesen Befehl NICHT in einem Web Verbindungsprozess. |
Sein Einsatz im Web ist nicht möglich. | |
EDIT ACCESS | Rufen Sie diesen Befehl NICHT in einem Web Verbindungsprozess. |
Der Kennwortdialog erscheint auf dem 4D Rechner. | |
Der Browser wartet, bis das Fenster geschlossen ist. | |
GRAPH TABLE | Rufen Sie diesen Befehl NICHT in einem Web Verbindungsprozess. |
Sein Einsatz im Web ist nicht möglich. | |
MODIFY SUBRECORD | Rufen Sie diesen Befehl NICHT in einem Web Verbindungsprozess |
Sein Einsatz im Web ist nicht möglich. | |
ORDER BY | Unterstützung nur per Programmierung. Die Standarddialoge für |
Order By werden im Web nicht unterstützt. | |
PRINT SETTINGS | Rufen Sie diesen Befehl NICHT in einem Web Verbindungsprozess. |
Die Druckdialoge erscheinen auf dem 4D Rechner. | |
Der Browser wartet, bis das Fenster geschlossen ist. | |
QR REPORT | Rufen Sie diesen Befehl NICHT in einem Web Verbindungsprozess. |
Das Fenster Schnellbericht erscheint auf dem 4D Rechner | |
Der Browser wartet, bis das Fenster geschlossen ist. |
HTML einbinden
Sie können den Inhalt von 4D Formularen, die in HTML konvertiert wurden, durch Einbinden von HTML Code bzw. Javascript anpassen. Das Ergebnis im Web Browser ist eine Kombination aus HTML und 4D Objekten.
HTML Seite mit statischem Textobjekt einfügen
Ein statisches Textobjekt aus einem 4D Formular, das z.B. den String "{page.HTM} enthält, fügt das HTML Dokument "page.HTM" im 4D Formular an der Stelle ein, wo das Textobjekt liegt.
Sie fügen ein Dokument vollständig ein, d.h. alles zwischen den Tags <BODY> und <BODY>. Sie können entweder ein vorhandenes HTML Dokument verwenden, oder über die Programmiersprache ein Dokument aufbauen, das sie auf der Festplatte sichern und auf welches Sie sich dann später beziehen.
Hinweis: In einigen Fällen zeigt die HTML Konvertierung von Formularen, die mit einer älteren Version erstellt wurden und eine Referenz auf ein HTML Dokument enthalten {meineSeite.HTM}, mit 4D Version 6.7 oder höher nicht immer das erwartete Ergebnis. In diesem Fall können Sie den Konvertierungsmodus für Formulare über den Befehl SET DATABASE PARAMETER verändern.
HTML Code einfügen
Jede 4D Variable vom Typ Text kann HTML Code in ein 4D Formular einbinden, wenn das erste Zeichen den ASCII Code 1 enthält, z.B. vtHTML:=Char(1)+" HTML Code ")
Sie können so Code-Teile einfügen und in diesem Fall den HTML Code in den Speicher legen.
Dateireferenzen und URLs
Um die Verwaltung der Kontext- und Unterkontextnummern im kontextuellen Modus sicherzustellen, wandelt 4D Dateireferenzen und URLs um. So werden zum Beispiel alle IMG und HREF Referenzen in lokale Dateien umgewandelt.
Fügen Sie Ihren eigenen HTML Code über eine Textvariable in ein 4D Formular ein, müssen Sie sich nach der 4D Syntax für die Umwandlung richten.
Lokale GIF Dateien werden umgewandelt als "/4DPict/_/GIF_file_pathname/$-2". Dabei ist GIF_file_pathname der volle HTML Pfadname der GIF Datei, der das Volume angibt, in der diese Datei liegt.
Beispiel
Folgende 4D Methode gibt die umgewandelte Referenz für den Pfadnamen zurück, der als Parameter zurückgegeben wird:
` Projektmethode WWW Local GIF URL ` WWW Local GIF URL Projekt ( Text ) ` WWW Local GIF URL ( Native pathname ) -> URL in lokale GIF Datei C_TEXT($0;$1) $0:="/4DPict/_/"+HTML Pathname ($1)+"/$-2"
Hinweis: Weitere Informationen zur Methode HTML Pathname finden Sie in den Beispielen zur Funktion Mac to ISO.
Beim Einfügen von HTML Code in ein 4D Formular über eine Textvariable schreiben Sie dann:
vtHTML:=Char(1)+"<P><IMG SRC="+Char(34)+WWW Local GIF URL ("F:\ThisImage.HTM"+Char(34)+" ALIGN=MIDDLE></P>"+Char(13)
Damit wird das GIF Dokument an der Stelle der 4D Variablen vtHTML in das 4D Formular eingefügt.
Wichtig: Sie müssen diese Art von Code nur schreiben, um eigenen HTML Code in ein 4D Formular einzufügen. 4D wandelt 4D HTML transparent um, wenn Sie eine HTML Seite mit SEND HTML FILE senden oder Befehle wie ADD RECORD verwenden.
Die Umwandlung ändert keine Links mit folgendem Prefix:
http://
ftp://
mailto://
news://
gopher://
javascript://
telnet://
Referenz
Datenbankmethode On Web Authentication, Datenbankmethode On Web Connection , SET DATABASE PARAMETER, Sicherheit der Verbindung.