Feldarten
Virtuelles Feld
Feldart virtual. Ein Feld, dessen Wert bei jeder Anzeige aus anderen Feldern berechnet wird. Es hat
kein Datenfeld und speichert nichts. Was Erfassende sehen, beschreibt Virtuelles Feld . Die Verwaltungsseite unter Datenmodell ›
Virtuelle Felder beschreibt Virtuelle Felder ,
den Ablauf Virtuelles Feld anlegen .
Verknüpfungsmodi
| Modus | Quellen | Ergebnis |
|---|---|---|
direct | eine | Der Wert, wie er ist. Wahlweise an einem Trennzeichen in mehrere Werte geteilt |
concat | mehrere | Mit einer Trennzeichenkette verbunden; leere Quellen fallen in der Vorgabe weg |
fallback | mehrere | Der erste nicht leere Wert |
union | mehrere | Alle Werte aller Quellen, jeder nur einmal, mit separator verbunden. Mit split wird jede Quelle vorher geteilt |
js | eine oder mehrere | Ergebnis einer geprüften Formel |
JSON{ "mode": "concat", "separator": ", ", "skip_empty": true, "sources": ["Kuenstler_Vorname", "Kuenstler_Zuname"] }
Der Modus fallback am Beispiel „Anzeigetitel“ aus dem Demo-Bestand:
JSON{ "mode": "fallback", "sources": ["Objekttitel", "Alternativtitel", "Inventarnummer"] }

Der Modus union nimmt die Quellen in ihrer Reihenfolge, teilt jede bei gesetztem split und lässt
leere Werte und Wiederholungen weg. Verglichen wird der dargestellte Wert ohne Leerzeichen am Rand.
Groß- und Kleinschreibung zählt: „Paris“ und „paris“ bleiben beide stehen. Wer sie angleichen will,
nimmt js.
JSON{ "mode": "union", "separator": ", ", "split": ";", "sources": ["Herstellungsort", "Fundort"] }
Steht im Herstellungsort „Rom; Paris“ und im Fundort „Paris“, ergibt das Rom, Paris.
Als Quellen stehen neben Feldern auch Projektdaten (Name, Name englisch, Ort, Beginn, Ende, Status) und die Objekt-ID zur Wahl.
Die Formel im Modus js
Die Quellwerte stehen unter werte['Feldname']. Dazu kommen die Hilfen leer, spalte, verbinde, tab, cfg, meta und fmt sowie String, Number, Boolean, Math, Intl, Object, Array, JSON, Date und die Zahlenkonverter.
JSconst a = werte['Datierung von']; const b = werte['Datierung bis']; if (leer(a) && leer(b)) return ''; if (leer(b) || String(a) === String(b)) return String(a); if (leer(a)) return String(b); return String(a) + '–' + String(b);

JSconst teile = []; for (const n of ['Höhe', 'Breite', 'Tiefe']) { const v = werte[n]; if (leer(v)) continue; teile.push(String(Number(v)).replace('.', ',')); } return teile.length > 0 ? teile.join(' × ') + ' cm' : '';

JS// Anzeigetitel: Arbeitstitel, sonst Originaltitel, sonst der deutsche Titel eines JSON-Feldes return werte['Arbeitstitel'] || werte['Originaltitel'] || tab(werte['Titel'], 'de') || '';
JS// Den fertigen Formatter eines JSON-Feldes abrufen, sonst den Rohwert return fmt('Maße') || werte['Maße'];
Die Formel läuft in einem geprüften Sandkasten, derselbe wie bei Ausgabe-Formattern und Feldbedingungen. Jede zugelassene Formel endet garantiert:
| Erlaubt | Nicht erlaubt |
|---|---|
const, let, var, if, try/catch | eigene Funktionen außer Pfeilfunktionen als Argument einer Listen-Methode |
Schleifen for … of und for … in | for (;;), while |
.push und andere Änderungen an selbst angelegten Listen | Änderungen an den gelesenen Daten |
Methoden aus der Freigabeliste (map, filter, join, split …) | Aufruf anderer Funktionen und Methoden |
Der Code-Editor meldet Abgelehntes mit der erlaubten Ersatzform. „Prompt für eine KI kopieren“ stellt Regeln, verfügbare Namen und die Struktur der Daten für ein Sprachmodell zusammen. Fällt die Formel durch die Prüfung, wird die Definition nicht gespeichert; eine gespeicherte, später unzulässige Formel wird nicht ausgeführt.
Beschriftung als Vorlage
Enthält die Beschriftung des Feldes den Platzhalter für den Wert (value in doppelten geschweiften
Klammern, im Editor als Baustein), wird die ganze Kachel aus der Beschriftung gebaut, mit dem Wert an
dieser Stelle. So entstehen Kacheln wie Inventar: 12/345, Standort Depot mit Formatierung. Ohne
Platzhalter steht die Beschriftung über dem Wert.
Rechte
Ein virtuelles Feld ist genau so sichtbar wie seine schwächste Quelle. Darf jemand eine Quelle nicht lesen, verschwindet das Feld für ihn vollständig. Es gibt keinen eigenen Zugriff und keine zweite Rechtequelle, sonst wäre ein virtuelles Feld ein Weg um die Feldrechte herum. Die Verwaltung zeigt an, wenn Quellfelder nicht auflösbar sind; ein solches Feld wird nirgends angezeigt.
Filtern, sortieren, suchen
Nach einem virtuellen Feld lässt sich filtern, sortieren und gruppieren, auch als Spaltenfeld im Kanban, und die Volltextsuche findet seinen Wert. Dafür berechnet Moliri die Werte je Feld und Projekt im Hintergrund vorab, beim ersten Gebrauch, und hält sie danach aktuell. Wie verglichen wird, bestimmt Sortieren als in der Definition, siehe Virtuelle Felder .
Die vorab berechneten Werte gelten für alle Konten gleich. Filtern und sortieren darf deshalb nur, wer alle Quellen lesen darf. Liest ein Feld aus Verknüpfungen zu Objekten, Dateien oder Ereignissen, könnte der eigene Wert enger sein als der vorab berechnete; solche Felder stehen in Filter und Sortierung nur Konten mit Status 4 und höher zur Verfügung.
Arbeiten mit den Quellen
| Aufgabe | Wo |
|---|---|
| Wert ändern, Anmerkungen, Verlauf | An den Quellfeldern; das virtuelle Feld hat keinen gespeicherten Wert |
| Ladezeit | Jede Quelle wird mitgeladen, auch wenn nur das virtuelle Feld angezeigt wird. Ein Feld über fünf Quellen lädt fünf Felder |
Virtuelles Feld oder Ausgabe-Formatter
Beide erzeugen aufbereitete Werte mit denselben Hilfen. Ein Ausgabe-Formatter gehört zu einem Feld und formatiert nur dieses. Ein virtuelles Feld liest mehrere Felder und ist ein eigenes Feld mit eigener Kachel. Wer ein JSON-Feld lesbar machen will, nimmt den Formatter, wer über Felder hinweg rechnet, das virtuelle Feld. Siehe Formatierungen .