Interne Webseiten #
EULANDA verwendet einen eingebetteten Browser zur Darstellung von HTML-Seiten innerhalb der Desktop-Anwendung. Diese internen Webseiten bilden die Grundlage für Kurzinfo-Panels, Startseiten, Statistik-Ansichten, Einstellungsmasken und weitere Bereiche der Benutzeroberfläche.
Laufzeitumgebung #
Aktuell laufen die Seiten in einer IE11-Engine, die in EULANDA.EXE eingebettet ist. Daraus ergeben sich Einschränkungen bei der Verwendung moderner Web-Technologien:
| Einschränkung | Details |
|---|---|
| Kein ES6 | Kein class, keine Arrow-Functions (=>), kein let/const in älteren Versionen, keine Template-Literals |
| Kein modernes CSS | Kein Flexbox, kein Grid, kein calc() mit Variablen |
Kein fetch/Promise | Asynchrone Aufrufe über COM-Objekte |
| Zeichensatz | UTF-8 — das eulanda://-Protokoll liefert alle Inhalte in UTF-8 aus |
| CSS-Framework | W3CSS v2.74 (neuere Versionen sind nicht IE-kompatibel) |
Ausblick: Im Laufe des Jahres 2026 wird die Browser-Engine auf Chromium umgestellt. Die oben genannten Einschränkungen entfallen dann — modernes JavaScript (ES6+), Flexbox, Grid und aktuelle CSS-Features stehen zur Verfügung. Das
eulanda://-Protokoll, die Host-Kommunikation überwindow.externalund dieforms.js-API bleiben dabei erhalten.
Hinweis (bis zur Umstellung):
letundconstfunktionieren im Dokumentmodus IE11, werden aber nicht in allen Kontexten unterstützt. Vermeiden Sieclass, Arrow-Functions und Template-Literals.
Das eulanda://-Protokoll #
Seiten werden nicht vom Dateisystem geladen, sondern über ein eigenes URL-Protokoll. EULANDA.exe fängt alle eulanda://-Requests ab und liefert die Ressourcen aus der SQL-Registry bzw. den in die EXE eingebetteten Win32-Ressourcen.
<!-- CSS und JavaScript laden -->
<link rel="stylesheet" href="eulanda://./w3eulanda.css" />
<script src="eulanda://./forms.js" charset="ISO-8859-1"></script>
<!-- Datensatz öffnen -->
<a href="eulanda://./DOC/Eulanda.Artikel/386632">Artikel anzeigen</a>
<!-- Bericht drucken -->
<a href="eulanda://./DOC/Eulanda.Auftrag/1544?print&target=preview">Vorschau</a>
<!-- Formular starten -->
<a href="eulanda://./FORM/cnsoft.POS.CashDesk.Standard">Kasse öffnen</a>
Pfad-Konventionen #
| Pfad | Bedeutung |
|---|---|
eulanda://./datei | Datei unter \MODULES\WEB\ |
eulanda://./ALLUSER/datei | Benutzergemeinsame Dateien unter \USER\.ALLUSER\WEB\ |
eulanda://./CURRENTUSER/datei | Dateien des angemeldeten Benutzers |
eulanda://./VENDOR/~name/datei | Solution-Partner-Bereich |
eulanda://./DOC/objektname/id | Datensatz öffnen |
eulanda://./DOC/objektname/id?print | Druckdialog öffnen |
eulanda://./DOC/objektname/id?infosystem=name | Infosystem anzeigen |
eulanda://./DOC/objektname/0?query=MATCH='...' | Datensatz suchen |
eulanda://./FORM/formularname | Modul/Formular starten |
eulanda://./HELP/pfad | Hilfeseite (neues Fenster) |
eulanda://./HELPHERE/pfad | Hilfeseite (im aktuellen Browser) |
eulanda://./APP/SETTINGS/seite | Eigenschaftsseite öffnen |
Der Punkt (.) steht dabei für den aktuellen Mandanten. Bei externen Aufrufen wird stattdessen der Datenbankname angegeben (siehe eulanda-URL-Protokoll).
Kommunikation mit dem Host #
Die HTML-Seiten kommunizieren über window.external mit EULANDA. Die zentrale Bibliothek forms.js initialisiert die Brückenobjekte automatisch:
| Objekt | Beschreibung |
|---|---|
client | Hauptschnittstelle zu EULANDA (SQL-Ausführung, Objekte erstellen, Registry) |
ellib | Bibliothek für Datums-, Datei- und String-Funktionen |
weblib | Web-spezifische Funktionen (externe URLs öffnen, Admin-Kommandos) |
conn | ADO-Connection zur EULANDA-Datenbank |
reslib | Ressourcen-Bibliothek für UI-Texte und Übersetzungen |
Diese Objekte stehen nach dem Laden von forms.js global zur Verfügung. Sie sind undefined, wenn die Seite außerhalb der EULANDA-Anwendung geöffnet wird.
Kapitelübersicht #
Die folgenden Seiten beschreiben den Aufbau und die Programmierung interner Webseiten im Detail:
- Seitenaufbau — Standard-Layout, SSI-Includes, CSS-Hierarchie
- JavaScript-API — Die
forms.js-Bibliothek mit SQL-Zugriff, Übersetzung, Formularen - Platzhalter — ESX-Platzhalter und das Alias-System
- Menü-System — Dynamische Navigation mit Zugriffskontrolle
- Kurzinfos — HTML-Panels mit SQL-Datenbindung neben der Eingabemaske
- Beispiel — Eine Seite von Grund auf erstellen