Einrichtung: Anleitungen

Virtuelles Feld anlegen

Ein virtuelles Feld berechnet seinen Wert aus anderen Feldern. Es speichert nichts und lässt sich nicht bearbeiten. In Feldauswahlen trägt es eine kleine Marke, die sagt, woraus der Wert entsteht.

  1. Datenmodell › Virtuelle Felder öffnen und Neu wählen. Die Definition öffnet sich in einem Dialog.

  2. Name und Feldgruppe eintragen, wie bei einem gewöhnlichen Feld.

  3. Die Quellfelder wählen. Mindestens eines ist nötig. Neben Feldern stehen auch Systemquellen zur Wahl: die objektID und die Projektdaten (Name, Ort, Beginn, Ende, Status).

  4. Den Modus wählen:

    ModusErgebnis
    DirektDer Wert einer Quelle, wie er ist
    VerbindenMehrere Quellen, verbunden mit einem Trennzeichen. Mit Nur nicht leere verbinden fallen leere Quellen weg
    FallbackDer erste nicht leere Wert in der gewählten Reihenfolge
    JSDas Ergebnis eines geprüften Ausdrucks
  5. Speichern. Einen JS-Ausdruck prüft Moliri dabei. Fällt er durch, wird nicht gespeichert.

  6. Das Feld im Layout-Editor mit Virtuelles Feld einfügen platzieren.

Dialog des virtuellen Feldes „Anzeigetitel“ in der Feldgruppe Identifikation: Modus Fallback gewählt, darunter die Quellfelder Objekttitel, Alternativtitel und Inventarnummer in dieser Reihenfolge, darunter die Vorschau „Portrait of a Lady“ und der Haken Aktiv.

Häufige Anwendungen

Namenszeile. Modus Verbinden, Trennzeichen Leerzeichen, Quellen Vorname und Nachname, Nur nicht leere verbinden an. Fehlt der Vorname, bleibt kein einsames Leerzeichen stehen.

Anzeigetitel. Modus Fallback, Quellen in der gewünschten Reihenfolge: Arbeitstitel, Originaltitel, Titel deutsch. Der erste nicht leere Wert gewinnt.

Maßzeile. Modus JS, aus Einzelfeldern:

JS
const teile = [werte['Hoehe'], werte['Breite'], werte['Tiefe']].filter((v) => !leer(v));
return teile.length ? teile.join(' x ') + ' cm' : '';

Was im JS-Modus erlaubt ist

Der Ausdruck ist eine Teilmenge von JavaScript. Erlaubt sind Variablen, Bedingungen, Schleifen der Form for (const eintrag of liste), try/catch und die üblichen Listen- und Textmethoden.

Nicht erlaubt sind Zählschleifen (for (;;)) und while, eigene Funktionen und Aufrufe außerhalb der freigegebenen Methoden. Pfeilfunktionen gehen nur als Argument einer Listenmethode wie map oder filter. new nur für Date und einige Intl-Formate. So endet jeder Ausdruck sicher. Eine Ablehnung nennt die erlaubte Ersatzform.

Verfügbar sind die Quellwerte unter werte['Feldname'] und die Helfer leer, liste, cfg, meta, fmt, spalte, verbinde und tab.

Besonders nützlich ist fmt. Es liefert die fertige Formatierung eines anderen Feldes, statt sie nachzubauen:

JS
return fmt('Maße') || werte['Maße'];

Rechte

Ein virtuelles Feld ist nur so sichtbar wie seine schwächste Quelle. Darf jemand eine Quelle nicht lesen, verschwindet das Feld für ihn ganz. Einen eigenen Zugriff gibt es nicht, sonst wäre es ein Weg an den Feldrechten vorbei.

Die Verwaltung meldet Definitionen mit nicht auflösbaren Quellen. Der Filter Nur defekte listet sie.

Grenzen

GrenzeFolge
Nicht filterbar, nicht sortierbar, nicht gruppierbarNach den Quellfeldern filtern
Keine Anmerkungen, kein VerlaufEs gibt keinen gespeicherten Wert
Jede Quelle wird mitgeladenEin Feld über fünf Quellen lädt fünf Felder
Abschalten statt löschen

Statt eine Definition zu löschen, Aktiv ausschalten. Sie verschwindet aus allen Feldauswahlen, bleibt aber erhalten. Beim Löschen nennt die Rückfrage, auf wie vielen Layouts die Definition liegt. Diese Kacheln verschwinden mit.

Weiterlesen

\ en\ de