Feldarten
Vorlagenfeld
Zwei Familien von Feldarten für Darstellungen, die keine mitgelieferte Feldart abdeckt. Beide speichern wie ihre Grundart (Text, Ganzzahl, Dezimalzahl) und ersetzen nur die Darstellung im Layout. Was Erfassende sehen, beschreibt Vorlagenfeld .
| Familie | Feldarten | Bearbeitet unter |
|---|---|---|
| HTML-Vorlage | CUSTOM_TEXT, CUSTOM_INT, CUSTOM_DECIMAL | Eigener Code › HTML-Vorlage |
| Komponente | CUSTOM_SVELTE_TEXT, CUSTOM_SVELTE_INT, CUSTOM_SVELTE_DECIMAL | Eigener Code › Svelte-Komponente |
Bei CUSTOM_INT und CUSTOM_DECIMAL muss der Wert eine Zahl bleiben; bei CUSTOM_INT ohne
Nachkommastellen.
HTML-Vorlage
Die Vorlage steht in der Konfiguration unter html und wird nicht übersetzt. Platzhalter mit dem
Schlüssel in doppelten geschweiften Klammern werden vor der Ausgabe ersetzt:
| Platzhalter | Inhalt |
|---|---|
inhalt | der gespeicherte Wert |
value | derselbe Wert unter zweitem Namen |
label | die Feldbeschriftung |
datenfeldID | Nummer des Datenfeldes, brauchbar als id im Markup |
objektID, projektID | Objekt und Projekt |
sampledata | Beispielinhalt des Feldes, sonst der Wert |
Weitere Platzhalter greifen auf die übrigen Eigenschaften des Feldes zu.
HTML<span style="font-size:200%">{{inhalt}}</span>
Enthält die Vorlage ein input, select oder textarea, wird dessen Wert beim Ändern gespeichert.
Ohne ein solches Element ist das Feld reine Anzeige.
Eingesetzte Werte werden HTML-maskiert, ein Wert kann also kein Markup einschleusen. Die Vorlage selbst ist ungeprüftes HTML. Sie ist Konfiguration und gehört in vertrauenswürdige Hände.
Komponente
Der Quelltext der Komponente wird beim Speichern übersetzt; das Ergebnis landet in der Konfiguration unter html und wird nicht von Hand gepflegt. Ein Übersetzungsfehler erscheint im Editor, ein Laufzeitfehler
im Feld.
| Eigenschaft | Inhalt |
|---|---|
field | der ganze Feldeintrag mit Wert und Konfiguration |
value | der gespeicherte Wert |
label | die Feldbeschriftung |
objektID, projektID | Objekt und Projekt |
status | Speicherzustand |
bulkEdit | ob eine Stapelverarbeitung läuft |
Jede benutzte Eigenschaft muss die Komponente in $props() annehmen. Sonst bricht das Feld mit einer
Meldung wie „value is not defined“ ab. Importe folgen den Regeln des Browsers: relative Pfade und
veröffentlichte Pakete gehen (Pakete über esm.sh), Aliase wie $lib nicht.
Von allen Möglichkeiten des Datenmodells ist die eigene Komponente die aufwendigste. Ein Fehler darin trifft jedes Layout, auf dem das Feld liegt. Und bei jeder neuen Svelte-Version muss sie mitgezogen werden.
Parameter
| Schlüssel | Werte | Ohne Angabe | Wirkung |
|---|---|---|---|
html | Vorlage bzw. übersetztes Modul | leer | Die Darstellung. Ohne sie bleibt das Feld leer |
labelVisible | true, false | true | false lässt die Standardbeschriftung weg, wenn die Darstellung eine eigene mitbringt |
Export
Exporte, Suche und Vorlagen sehen den Rohwert, nicht die Darstellung. Wer die aufbereitete Form auch im Export braucht, nimmt einen Ausgabe-Formatter oder ein virtuelles Feld.
Wann etwas anderes das richtige Mittel ist
| Bedarf | Besseres Mittel |
|---|---|
| Aus mehreren Feldern einen Text zusammensetzen | Virtuelles Feld , ohne Code und auch im Export |
| Ein Verweis auf ein Fremdsystem, der im Feld steht | Link mit Vorschau |
| Tausendertrennung oder Einheit | Zahl mit passender Maske |
| Eine formatierte Ausgabe im Export | ein Ausgabe-Formatter |
| Eine wiederholte Struktur | JSON |