zurück zur Dokumentation
[reference] fields field-types columns reference

Felder-Referenz

Vollständige Referenz aller Feldtypen in dForge: Text, Zahl, Datum, Dropdown, Lookup, Formel und mehr.

veröffentlicht · aktualisiert

Überblick

Jede Entitätsspalte hat einen Feldtyp (fieldTypeCd), der bestimmt, wie Daten gespeichert, validiert, dargestellt und bearbeitet werden. Der Feldtyp wird für physische Spalten mit einem PostgreSQL-Datentyp (dbDatatype) gepaart.

Spaltentypen

Die meisten Spalten sind physische Datenbankspalten und brauchen kein columnType. Setzen Sie es nur für die folgenden Sonderfälle:

columnTypeBeschreibung
(weggelassen)Reguläre physische Datenbankspalte. Speichert einen Wert.
RReference — virtuelle Spalte. Zeigt einen Wert aus einer verbundenen Entität über einen Fremdschlüssel an (N:1-Lookup). Immer mit einer versteckten FK-Spalte gepaart.
SSet — virtuelle Spalte. Zeigt eine Sammlung von Kind-Datensätzen an (1:N-Beziehung).
FFormula — virtuelle Spalte. Berechneter Wert aus einem Ausdruck. Erfordert baseDatatypeCd.
GGenerated — physische Spalte, die von der Datenbank automatisch gepflegt wird.

Textfelder

FeldtypAnzeigenameBeschreibung
textTextEinzeilige Texteingabe. Gespeichert als varchar. Verwenden Sie maxLen, um die Länge zu setzen.
emailE-MailText mit E-Mail-Format-Validierung. Gespeichert als varchar.
phoneTelefonText mit Telefonnummer-Format. Gespeichert als varchar.
urlURLText, dargestellt als klickbarer Link. Gespeichert als varchar.
textareaMehrzeiliger TextMehrzeiliges Textfeld. Gespeichert als text. Konfigurieren Sie defaultLines und maxLines in den Params.
multilineRich TextRich-Text-Inhalt mit Formatierung. Gespeichert als text.

Um eine Spalte vollständig aus der Oberfläche auszublenden, geben Sie ihr leere Flags (""), statt einen hidden-Feldtyp zu verwenden.

Zahlenfelder

FeldtypAnzeigenameBeschreibung
numberZahlNumerische Eingabe. Unterstützt min/max-Validierung über Params.
currencyWährungZahl mit Währungssymbol formatiert. Setzen Sie den currency-Param (z. B. „USD“, „EUR“). 2 Nachkommastellen.
percentProzentZahl mit %-Symbol angezeigt. 2 Nachkommastellen. Standardbereich 0–100.

Zahlen-Params

Konfigurieren Sie über column.params:

  • min — minimal erlaubter Wert
  • max — maximal erlaubter Wert
  • currency — ISO-Währungscode für Währungsfelder (z. B. „USD“ wird als $ angezeigt)

Datum & Zeit

FeldtypAnzeigenameBeschreibung
dateDatumDatums-Auswahl. Gespeichert als date.
datetimeDatum & ZeitDatum- und Zeit-Auswahl. Gespeichert als timestamp.
timeZeitZeit-Auswahl. Gespeichert als time.

Boolean-Felder

FeldtypAnzeigenameBeschreibung
checkboxCheckboxTrue/false-Umschalter.

Auswahlfelder

FeldtypAnzeigenameBeschreibung
dropdownDropdownEinzelauswahl aus einer Liste von Optionen.
flagsFlagsMehrwert-Auswahl. Wird als Buttons oder Checkboxes angezeigt.
tagsTagsFrei eingebbare oder vordefinierte Tag-Eingabe.

Optionen-Konfiguration

Dropdown- und Flags-Optionen werden in column.params.options definiert:

{
  "options": ["Neu", "In Bearbeitung", "Erledigt"]
}

Oder mit Bezeichnungen, Symbolen und Farben:

{
  "options": [
    { "value": "new", "label": "Neu", "color": "#3B82F6" },
    { "value": "active", "label": "Aktiv", "color": "#10B981" },
    { "value": "closed", "label": "Geschlossen", "color": "#6B7280" }
  ]
}

Bedingte Optionen (Option Sets)

Optionen können sich basierend auf dem Wert eines anderen Feldes ändern, mit optionSets:

{
  "optionSets": {
    "condition": "object_type",
    "map": {
      "Entity": ["S", "I", "U", "D", "C"],
      "Action": ["E"],
      "Report": ["E"],
      "*": ["E"]
    }
  }
}

Beziehungsfelder

FeldtypAnzeigenameSpaltentypBeschreibung
lookupLookupR (Reference)Durchsuchbares Dropdown, das auf eine andere Entität verweist. Erstellt eine Fremdschlüssel-Beziehung.
gridDetail-GridS (Set)Eingebettetes Grid, das Kind-Datensätze einer 1:N-Beziehung anzeigt.
userAnwender-AuswahlD (Data)Spezielles Lookup, das die Anwender-Tabelle durchsucht.
entitylinkEntitäts-LinkD (Data)Polymorpher Link zu einem beliebigen Entitätstyp. Gespeichert als JSON.

Lookup-Konfiguration (FK + Reference-Pattern)

Ein Lookup braucht zwei Spalten: eine versteckte physische Fremdschlüssel-Spalte und eine virtuelle Referenz-Spalte, die das Lookup-Steuerelement rendert.

"account_id": {
  "dbDatatype": "cuid",
  "flags": "EM",
  "orderNum": 30,
  "description": "Account ID"
},
"account": {
  "columnType": "R",
  "fieldTypeCd": "lookup",
  "flags": "VEM",
  "orderNum": 35,
  "description": "Konto",
  "link": {
    "entity": "crm.account",
    "thisKey": "account_id",
    "otherKey": "account_id"
  }
}

Die versteckte FK speichert den Wert; die virtuelle Referenz rendert die Autocomplete und zeigt die toString-Vorlage des verlinkten Datensatzes an.

Medienfelder

FeldtypAnzeigenameBeschreibung
imageBildBild-Upload mit Vorschau.
fileDateiDatei-Upload mit Download-Link.
colorFarbauswahlFarbauswahl mit Hex-Wert-Speicherung.

Datenfelder

FeldtypAnzeigenameBeschreibung
jsonJSON-EditorStrukturierte JSON-Daten mit Syntax-Hervorhebung.

Formel-Spalten

Formel-Spalten (Spaltentyp F) berechnen Werte aus Ausdrücken. Sie haben keine physische Datenbankspalte — Werte werden zur Laufzeit berechnet.

Synchrone Formeln

Sofort aus den lokalen Datensatzdaten ausgewertet:

  • [quantity] * [unit_price] — multipliziert zwei Felder
  • [first_name] + ' ' + [last_name] — verkettet Strings
  • IF([amount] > 1000, 'Hoch', 'Standard') — bedingte Logik

Asynchrone Formeln (Navigation)

Folgen Referenzpfaden, um Daten aus verbundenen Entitäten abzurufen:

  • [account_id].[industry] — holt die Branche vom verlinkten Konto
  • [order_id].[customer_id].[name] — zwei-stufige Navigation

Asynchrone Formeln erfordern einen separaten Datenabruf und werden nach den synchronen Formeln aufgelöst.

Formel-Anforderungen

Formel-Spalten müssen angeben:

  • baseDatatypeCd — der Ergebnistyp (z. B. „string“, „number“)
  • fieldTypeCd — wie das Ergebnis dargestellt wird
  • formula — der Ausdruckstext

Spalten-Params-Referenz

Alle Feldtypen unterstützen diese Params über column.params:

ParamTypBeschreibung
optionsarrayDropdown-/Flags-Optionen
optionSetsobjectBedingte Optionen basierend auf einem anderen Feld
min / maxnumberValidierungsgrenzen für Zahlen
currencystringISO-Währungscode für Währungsfelder
alignstringTextausrichtung-Override (left, center, right)
gridWidthnumberStandard-Spaltenbreite in der Grid-Ansicht
defaultLinesnumberAnfängliche Textfeld-Höhe (Zeilen)
maxLinesnumberMaximale Textfeld-Höhe (Zeilen)
limWidthbooleanFeldbreite in Karten-/Formular-Ansicht begrenzen

Spalten-Flags

Spalten verwenden Einzelzeichen-Flags, um das Verhalten zu steuern. Kombinieren Sie sie als einzelnen String (z. B. "VEM").

FlagBedeutung
VVisible — wird in Grid- und Karten-Ansichten angezeigt
EEditable — Anwender kann den Wert ändern
MMandatory — beim Insert erforderlich (rotes Sternchen in der Oberfläche)
OOn insert — nur beim Insert gesetzt, danach nicht editierbar
SSortable — Spalte kann sortiert werden
GGroupable — Spalte kann zur Gruppierung verwendet werden
FFilterable — Spalte erscheint in der Filter-Zeile
CCompact — wird in kompakten/Listen-Ansichten angezeigt

Häufige Kombinationen:

KombinationAnwendungsfall
"VEM"Standard-Pflichtfeld
"VE"Standard-optionales Eingabefeld
"V"Schreibgeschützte Anzeige (Formeln, berechnete Werte)
"EM"Versteckte FK-Spalte (mit einer Reference gepaart)
""Vollständig versteckte Systemspalte

Flags können pro Ordner überschrieben werden, sodass dasselbe Feld in einem Ordner editierbar und in einem anderen schreibgeschützt sein kann.

Nummernsequenzen

Dokument-Entitäten (Rechnungen, Bestellungen, Angebote) können beim Insert automatisch menschenlesbare Nummern generieren. Definieren Sie eine numberSequence auf Entitäts-Ebene:

"numberSequence": {
  "column": "invoice_number",
  "prefixSettingCd": "invoice_number_prefix",
  "defaultPrefix": "INV-",
  "pattern": "{prefix}{yyyy}-{seq:3}",
  "resetPeriod": "year"
}
PropertyBeschreibung
columnZielspalte, die beim Insert auto-befüllt wird
prefixSettingCdModul-Einstellungs-Code für den Präfix (ordnergebunden, sodass jede Niederlassung ihren eigenen Präfix verwenden kann)
defaultPrefixFallback-Präfix, wenn die Einstellung nicht konfiguriert ist
patternFormat-Pattern mit Platzhaltern
resetPeriodWann der Zähler zurückgesetzt wird: year, month, day oder never

Pattern-Platzhalter: {prefix}, {yyyy}, {yy}, {mm}, {dd}, {seq:N} (mit Nullen aufgefüllte Breite).

Beispiel-Output: INV-2026-001, INV-2026-002, …

Constraints

Fügen Sie CHECK-Constraints auf Entitäts-Ebene für serverseitige und clientseitige Validierung hinzu:

"constraints": {
  "chk_amount_positive": {
    "type": "check",
    "expression": "amount IS NULL OR amount >= 0",
    "message": "Betrag darf nicht negativ sein"
  }
}

Constraints werden zu echten PostgreSQL-CHECK-Constraints auf der Tabelle und werden auch clientseitig über den Formel-Auswerter ausgewertet, für sofortiges UI-Feedback.

Traits

Traits fügen automatisch häufige Spalten hinzu. Geben Sie sie auf Entitäts-Ebene an — sie werden vor Ihren fields angewendet, sodass Sie einzelne Spalten bei Bedarf überschreiben können.

TraitHinzugefügte Spalten
identity{entity}_id (int8 Primärschlüssel, Snowflake-ID)
auditcreated_by, modified_by, created_date, modified_date
"traits": ["identity", "audit"]
/ war das hilfreich?

Stecken Sie irgendwo fest?
Sagen Sie es uns.

Wir lesen jede Nachricht und aktualisieren die Dokumentation auf Basis dessen, was Leser fragen. Der schnellste Weg, die Dokumentation zu verbessern, ist, uns zu schreiben.