zurück zur Dokumentation
[reference] views grid kanban calendar layouts

Ansichten-Leitfaden

Datenansichten in dForge: Grid-, Karten-, Kanban-, Kalender-, Listen- und Galerie-Layouts. Konfiguration, Datenquellen und Filter.

veröffentlicht · aktualisiert

Was ist eine Ansicht?

dForge hat zwei verwandte Ansichts-Systeme, die zusammenarbeiten:

  • Datenansichten sind gespeicherte Konfigurationen für Mehr-Datensatz-Bildschirme — Grids, Kanbans, Kalender. Sie sind an Menüpunkte angehängt: Wenn ein Anwender auf einen Menüpunkt klickt, wird die passende Datenansicht geladen.
  • Entitätsansichten sind ordner-spezifische Spalten-Konfigurationen und Formular-Layouts für einen einzelnen Datensatz. Sie steuern, welche Spalten ein Anwender sieht, wenn er einen Datensatz aus einem Ordner öffnet, und wie das Formular angeordnet ist.

Zusammen lassen sie dieselbe Entität in zwei Ordnern völlig unterschiedlich aussehen — andere Spalten, andere Formulare, andere Filter — ohne die zugrunde liegende Tabelle zu duplizieren.

Datenansichts-Typen

TypAm besten fürBeschreibung
GridListen von DatensätzenTabellen-artige Darstellung mit sortierbaren Spalten, Inline-Bearbeitung und Auswahl. Immer verfügbar.
KanbanPipeline-TrackingBoard, gruppiert nach einem Status-/Kategorie-Feld. Erfordert, dass die Entität ein Status-Feld hat.
ListeKompaktes DurchstöbernTitel + Untertitel-Vorlage, gut für einfache Daten und Mobile.
KalenderDatumsbasierte DatensätzeMonats-/Wochen-/Tagesansicht. Erfordert ein Datumsfeld.
TimelineGeplante ArbeitGantt-artige Timeline. Erfordert Start- und Enddatum-Felder.
GalerieBild-lastige DatenKarten-Grid mit Bild-Thumbnails. (Geplant.)

Die Karten-Ansicht ist kein Datenansichts-Typ — es ist das Einzel-Datensatz-Formular, das aus dem Layout einer Entitätsansicht gerendert wird, wenn ein Anwender eine Zeile öffnet.

Wenn ein Client einen Ansichtstyp empfängt, den er nicht unterstützt — oder einen, der nicht zur Entität passt (z. B. Kanban ohne Status-Feld) — fällt er automatisch auf Grid zurück.

Grid-Ansicht

Die Standard- und gebräuchlichste Ansicht. Funktionen:

  • Spalten-Konfiguration — wählen, welche Felder erscheinen, ihre Reihenfolge und Breite
  • Sortieren — Spaltenüberschriften klicken, um aufsteigend/absteigend zu sortieren
  • Inline-Bearbeitung — Doppelklick auf eine Zelle, um sie an Ort und Stelle zu bearbeiten
  • Auswahl — Checkbox-Spalte für Massenoperationen
  • Aggregationen — Footer-Zeile mit Summe, Anzahl, Durchschnitt, Min, Max pro Spalte
  • Master-Detail — eine Zeile aufklappen, um verbundene Kind-Datensätze anzuzeigen

Karte (Einzel-Datensatz-Formular)

Das Detail-Formular für einen einzelnen Datensatz. Layouts werden pro Entitätsansicht definiert, sodass dieselbe Entität in verschiedenen Ordnern unterschiedliche Formulare haben kann. Layouts bestehen aus zwei Element-Typen:

  • columnGroup — eine Sektion von Feldern, die zusammen gerendert werden. Mappt auf Entitäts-Spaltengruppen, die als zwei-zeilige Header in Grids angezeigt werden können.
  • set — ein Inline-Detail-Grid für ein Kind-Set-Feld (Master-Detail), z. B. Rechnungspositionen innerhalb eines Rechnungs-Formulars.

Beide Element-Typen geben die exakte Liste der zu rendernden Felder in Reihenfolge an. Formel-Spalten und generierte Aggregate werden neben physischen Feldern angezeigt.

Kanban-Ansicht

Board-Layout, gruppiert nach einem Feldwert. Konfiguration:

  • Gruppen-Feld — welches Feld die Spalten bestimmt (z. B. Status, Phase)
  • Titel-Feld — was als Karten-Titel angezeigt wird
  • Untertitel-Felder — zusätzliche Felder, die auf jeder Karte angezeigt werden

Eine Karte per Drag-and-Drop zwischen Spalten verschieben, um den Wert des Gruppen-Feldes zu aktualisieren.

Kalender-Ansicht

Stellt Datensätze auf einem Kalender dar. Konfiguration:

  • dateField — welches Feld das Ereignis positioniert
  • titleField — was am Ereignis angezeigt wird

Timeline-Ansicht

Gantt-artige Timeline. Konfiguration:

  • startField / endField — Datumsbereich-Felder
  • titleField — Balken-Bezeichnung

Listen-Ansicht

Kompakte Liste mit Titel- und Untertitel-Vorlage. Konfiguration:

  • titleField — das primäre Anzeige-Feld
  • subtitleField — sekundäre Information

Datenquellen

Eine Datenansicht deklariert eine oder mehrere dataSources — die Entitäten und Spalten, die sie zeigt.

Einzelne Entität (am häufigsten)

{
  "viewType": "grid",
  "dataSources": [
    {
      "entityCode": "product",
      "level": 0,
      "columns": ["name", "sku", "category", "price", "quantity"]
    }
  ]
}

Master-Detail (hierarchisch)

Eine Eltern-Entität auf level: 0 mit Detail-Entitäten auf level: 1+. Die Beziehung folgt einem Set-Feld auf dem Eltern. Zeilen klappen auf, um ihre Kinder zu zeigen.

{
  "viewType": "grid",
  "dataSources": [
    { "entityCode": "order", "level": 0,
      "columns": ["order_number", "order_date", "status", "total"] },
    { "entityCode": "order_detail", "level": 1,
      "parentSetField": "details",
      "columns": ["product_id", "quantity", "price", "amount"] }
  ]
}

Selbe Ebene (Union)

Mehrere Entitäten auf Level 0, zusammen angezeigt — funktioniert am besten, wenn sie gemeinsame Spalten teilen (z. B. eine vereinheitlichte „letzte Aktivität“-Liste).

Ansichts-Spalten

Spalten können als einfache Strings (nur der Spalten-Code) oder als Objekte mit Overrides geschrieben werden. Beide Formen können gemischt werden:

"columns": [
  "name",
  { "column_cd": "sku", "width": 120 },
  { "column_cd": "internal_note", "visible": false },
  "price"
]
PropertyBeschreibung
column_cdSpalten-Code (entspricht einem entity_column.column_cd)
widthSpaltenbreite in Pixel (Grid)
visibleOb die Spalte standardmäßig angezeigt wird

Die String-Form wird in Modul-Paketen aus Kürze bevorzugt; anwender-angepasste Ansichten serialisieren als Objekte, um Breiten und Sichtbarkeit zu bewahren.

Filter

Filter-Komposition

Jede Abfrage wird durch vier Schichten gefiltert, die in der Datenbank mit AND verknüpft sind:

SchichtQuelleZweck
1. Ordner-FilterDer row_filter des OrdnersSchränkt Daten auf den Kontext des Ordners ein (z. B. Lager, Division)
2. Ansichts-FilterDer filter der DatenansichtSchränkt auf eine ansichts-spezifische Teilmenge ein (z. B. amount > 1000)
3. Sicherheits-FilterSicherheitsregeln auf ZeilenebeneSetzt Zugriffssteuerung durch (z. B. nur eigene Datensätze)
4. Anwender-Ad-hoc-FilterUI-Filter-LeisteTemporäre Filter, die der Anwender zur Laufzeit hinzufügt

Deshalb kann man sich Ordner als dynamische gefilterte Ansichten vorstellen: Die Ordner-Schicht allein bestimmt, welche Datensätze überhaupt in irgendeiner Ansicht innerhalb des Ordners erscheinen.

Anwender-Filter

Anwender können zur Laufzeit Filter pro Spalte hinzufügen:

  • Text: enthält, gleich, beginnt mit
  • Zahl: gleich, größer als, kleiner als, zwischen
  • Datum: gleich, vor, nach, zwischen, heute, diese Woche, diesen Monat
  • Dropdown/Flags: ist, ist nicht, ist eines von
  • Lookup: ist, ist nicht (suchbasiert)

Sicherheit auf Spaltenebene

Entitätsansichten dienen auch als Schicht für Sicherheit auf Spaltenebene. Die entity_v_column-Zeilen für eine Ansicht listen auf, welche Spalten zugänglich sind — alles, was nicht aufgelistet ist, ist versteckt, und der Anwender kann es nicht abfragen. Verschiedene Ordner können dieselbe Entität an verschiedene Entitätsansichten binden, sodass ein Lagerverwalter-Ordner quantity und location zeigen kann, während ein Buchhaltungs-Ordner price, cost und margin auf genau derselben Produkttabelle zeigt.

Aggregationen

Grid-Ansichten können Footer-Aggregationen pro Spalte zeigen. Verfügbare Aggregations-Typen hängen vom Feldtyp ab:

AggregationUnterstützte Typen
Summenumber, currency
Anzahlalle Typen
Durchschnittnumber, currency, percent
Minnumber, currency, date, datetime
Maxnumber, currency, date, datetime
/ 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.