Interne Webseiten
Zuletzt geändert: 12.03.2026 20:38

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änkungDetails
Kein ES6Kein class, keine Arrow-Functions (=>), kein let/const in älteren Versionen, keine Template-Literals
Kein modernes CSSKein Flexbox, kein Grid, kein calc() mit Variablen
Kein fetch/PromiseAsynchrone Aufrufe über COM-Objekte
ZeichensatzUTF-8 — das eulanda://-Protokoll liefert alle Inhalte in UTF-8 aus
CSS-FrameworkW3CSS 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 über window.external und die forms.js-API bleiben dabei erhalten.

Hinweis (bis zur Umstellung): let und const funktionieren im Dokumentmodus IE11, werden aber nicht in allen Kontexten unterstützt. Vermeiden Sie class, 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 #

PfadBedeutung
eulanda://./dateiDatei unter \MODULES\WEB\
eulanda://./ALLUSER/dateiBenutzergemeinsame Dateien unter \USER\.ALLUSER\WEB\
eulanda://./CURRENTUSER/dateiDateien des angemeldeten Benutzers
eulanda://./VENDOR/~name/dateiSolution-Partner-Bereich
eulanda://./DOC/objektname/idDatensatz öffnen
eulanda://./DOC/objektname/id?printDruckdialog öffnen
eulanda://./DOC/objektname/id?infosystem=nameInfosystem anzeigen
eulanda://./DOC/objektname/0?query=MATCH='...'Datensatz suchen
eulanda://./FORM/formularnameModul/Formular starten
eulanda://./HELP/pfadHilfeseite (neues Fenster)
eulanda://./HELPHERE/pfadHilfeseite (im aktuellen Browser)
eulanda://./APP/SETTINGS/seiteEigenschaftsseite ö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:

ObjektBeschreibung
clientHauptschnittstelle zu EULANDA (SQL-Ausführung, Objekte erstellen, Registry)
ellibBibliothek für Datums-, Datei- und String-Funktionen
weblibWeb-spezifische Funktionen (externe URLs öffnen, Admin-Kommandos)
connADO-Connection zur EULANDA-Datenbank
reslibRessourcen-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