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 |
|---|---|
value | der gespeicherte Wert; bei custom_int und custom_decimal die Zahl ohne angehängte Nullen (48000, 12.5) |
formatted | bei custom_int und custom_decimal die Zahl mit Tausender- und Dezimaltrenner (48 000, 12,5). Die Trenner kommen aus thousandsSeparator und radix der Konfiguration, ohne Angabe Leerzeichen und Komma wie beim Zahlenfeld. Bei Text derselbe Wert wie value |
label | die Feldbeschriftung |
field_value_id | Nummer des Datenfeldes, brauchbar als id im Markup |
object_id, project_id | Objekt und Projekt |
sample_data | Beispielinhalt des Feldes, sonst der Wert |
Weitere Platzhalter greifen auf die übrigen Eigenschaften des Feldes zu. Ältere Vorlagen mit den
deutschen Namen inhalt, formatiert, datenfeldID, objektID, projektID und sampledata werden
weiter ausgefüllt.
Zwei Vorlagen aus dem Demo-Bestand: „Nummernschild“ (custom_int, mit label_visible: false) und
„Schildvorschau“ (custom_text).
HTML<!-- Nummernschild --> <span style="font-size:150%;font-variant-numeric:tabular-nums">#{{value}}</span> <!-- Schildvorschau --> <div style="border:1px solid #999;padding:8px;font-family:serif"><strong>{{value}}</strong></div>

Für Beträge eignet sich formatted. Mit der folgenden Vorlage zeigt ein custom_decimal-Feld den
gespeicherten Wert 48000.00000 mit Tausendertrenner als „48 000“, das Euro-Zeichen dahinter steht in der
Vorlage:
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 |
object_id, project_id | 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 |
label_visible | 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 |
