Feldarten
Zahl
Feldarten DECIMAL (fünf Nachkommastellen) und INT (Ganzzahl). Beide teilen Eingabe und
Konfiguration; sie unterscheiden sich in der Speicherform. Die Eingabe aus Sicht der Erfassung
beschreibt Zahl .
Einheiten
Angezeigt wird gespeicherter Wert × factor. Die Einheit mit factor: 1 ist die Basiseinheit, in
der tatsächlich gespeichert wird.
JSON{ "units": [ { "unit": "mm", "factor": 10 }, { "unit": "cm", "factor": 1 }, { "unit": "m", "factor": 0.01 } ], "defaultUnit": { "unit": "cm", "factor": 1 } }
| Einheit | factor | 120 gespeichert zeigt |
|---|---|---|
| mm | 10 | 1 200 |
| cm | 1 | 120 |
| m | 0.01 | 1,2 |
Die Basiseinheit legt man einmal fest und ändert sie nicht mehr. Wer factor: 1 nachträglich einer
anderen Einheit gibt, verschiebt die Bedeutung aller gespeicherten Zahlen. Welche Einheit ein einzelnes
Objekt gewählt hat, steht in dessen Modifier 1, nicht im Wert.
| Fall | Konfiguration |
|---|---|
| Einfaches Zahlenfeld | keine, die Vorgabemaske greift |
| Feste Einheit ohne Wahl | eine einzige Einheit in units, oder nur defaultUnit |
| Einheitenwahl | mehrere Einheiten in units, dazu defaultUnit |
Unter Parameter pflegt das Formular units und defaultUnit gemeinsam, damit keine Vorauswahl
entsteht, die in der Liste fehlt.
Für Beträge bekommt jede Währung factor: 1. Wechselkurse schwanken, ein einmal umgerechnet gespeicherter
Betrag wäre später falsch.
Der Wandplaner liest Maßfelder über ihre Einheit und braucht dafür einen auflösbaren Millimeterfaktor. Ein Maßfeld ohne erkennbare Einheit wird dort übergangen.
Eingabemaske
Die Maske folgt imask.js . Ihre Schlüssel stehen flach in der Konfiguration
oder gruppiert unter imask. Eine Teilangabe wie {"scale": 2} wird aus der Vorgabe ergänzt.
| Schlüssel | Werte | Ohne Angabe | Wirkung |
|---|---|---|---|
scale | Zahl | 2 (bei INT 0) | Angezeigte Nachkommastellen. Bei INT nur 0 |
thousandsSeparator | ein Zeichen | Leerzeichen | Tausendertrennzeichen |
radix | ein Zeichen | , | Dezimaltrennzeichen |
mapToRadix | Liste von Zeichen | [".", ","] | Zeichen, die beim Tippen als Dezimaltrenner gelten |
padFractionalZeros | true, false | false | Füllt die Nachkommastellen auf scale auf (nur DECIMAL im Formular) |
normalizeZeros | true, false | true | Räumt führende und überzählige Nullen auf |
signed | true, false | false | Negative Zahlen erlaubt |
min, max | Zahl | offen | Grenzen der Eingabe |
units | Liste von unit/factor | leer | Einheiten, siehe oben |
defaultUnit | unit/factor | erste Einheit | Vorausgewählte Einheit |
Weitere imask-Schlüssel werden durchgereicht: blocks, definitions, lazy, placeholderChar, displayChar, eager, overwrite, skipInvalid, autofix, from, to, maxLength, enum.
scale wirkt nur auf die Anzeige, aber sichtbar: bei scale: 2 kürzt die Maske 12,34567 schon beim
Laden auf 12,34, und ein Speichern schreibt diesen gekürzten Wert zurück. Bei DECIMAL wird jenseits
der fünften Nachkommastelle gerundet.
Formatierungen
Die Feldart bringt zwei Formatierungen mit, beide nirgends vorbelegt:
| Formatierung | Ausgabe | Kennung |
|---|---|---|
| Zahl | Die Zahl mit der Maske des Feldes | standard |
| Zahl mit Einheit | Dasselbe, dazu die Einheit | einheit |
Seit Version 1.4.23 gibt „Zahl“ nur noch die Maske aus. Vorher hieß die einzige Formatierung „Zahl mit Einheit“. Wo sie an einem Feld mit Einheit gewählt war, fehlt seither die Einheit, bis „Zahl mit Einheit“ gewählt wird. Siehe Formatierungen .
Wann eine andere Feldart passt
| Bedarf | Feldart |
|---|---|
| Ganze Zahlen | INT |
| Mehrere Maße in einem Feld, etwa Höhe, Breite, Tiefe für Objekt und Rahmen | JSON |
| Inventarnummern, Signaturen | Text |
| Klassen wie unter 50 und 50 bis 100 | Virtuelles Feld über dem Zahlenfeld |