Tabellen und Spaltenkonfiguration
Zweck
Alle Listenseiten in SpeamCore (Kunden, Aufträge, Belege, Produkte, ...) nutzen denselben Tabellen-Mechanismus auf Basis von MUI DataGridPremium mit einem internen Wrapper namens DataGridContainer. Diese Seite erklaert, was Sie als Anwender davon erwarten koennen — sortieren, filtern, suchen, Spalten ein-/ausblenden, Daten exportieren — und wie Spalten pro Mandant zentral konfiguriert sind.
Funktionen
| Funktion | Bedienung | Bemerkung |
|---|---|---|
| Sortierung | Spaltenkopf anklicken | Mehrfach-Sortierung per Shift-Klick. |
| Filter | Filtersymbol im Spaltenkopf | Operatoren wie enthaelt, gleich, groesser als, vorhanden. |
| Volltextsuche | Suchfeld oben | Sucht über alle indizierten Spalten. |
| Spalten ein-/ausblenden | Spaltenbutton in der Toolbar | Auswahl ist pro Anwender persistent. |
| Spalten umordnen | Spaltenkopf greifen und ziehen | Pro Anwender persistent. |
| Pagination | Footer | Default 25 Zeilen pro Seite, einstellbar bis 100. |
| Multi-Select | Checkbox links in der Zeile | Voraussetzung für Bulk-Aktionen. |
| Export | Toolbar → Export | CSV oder Excel. |
Spaltenkonfiguration (Column Configs)
Pro Modul liegt im Frontend eine <entity>FieldsConfig.ts. Sie beschreibt:
- Welche Spalten existieren (Feldname, Header, Datentyp, Renderer).
- Reihenfolge.
- Default-Sichtbarkeit pro Spalte.
- Sichtbarkeits-Bedingungen (z. B. abhaengig von
documentTypeoderisCalculationProduct). - Disabled-Bedingungen (z. B. wenn
locked = true). - Pflichtfeld-Markierung.
Wenn Sie als Administrator eine Spalte hinzufuegen oder umbenennen wollen, geschieht das im Code (FieldsConfig). Eine UI-basierte Spaltenkonfiguration auf Mandantenebene ist noch nicht vorhanden.
Stand der Doku: Custom-Felder per Mandant sind über Attribute und AttributeGroups realisiert (Welle 19) — diese erscheinen pro Detail-Form als Custom-Felder, nicht als zusaetzliche Spalten in DataGrids. Eine Spalten-Custom-Konfiguration in der DataGrid-Ansicht selbst ist nicht implementiert; bei Bedarf waere es ein eigenes Feature.
Filter-Werte aus dem Backend
Manche Filter-Dropdowns (z. B. Status auf Aufträgen oder documentType + Status auf Verkaufsbelegen) werden über dedizierte Endpoints befuellt, die nur die in der Datenbank tatsaechlich vorkommenden Werte zurückgeben:
| Modul | Endpoint | Zweck |
|---|---|---|
| Aufträge | GET /api/workorders/available-statuses | DISTINCT-Status |
| Verkaufsbelege | GET /api/sales-documents/available-filter-values | DISTINCT-Pairs (documentType + status) |
Dieses Muster vermeidet, dass die Filter-Dropdowns die kompletten Listen abfragen muessen.
Pflicht-Felder pro Spalte
Tabellenkopf-Beschriftung folgt dem i18n-Schlüssel des jeweiligen Modells (z. B. customerNo, salesDocumentType). Spalten-Sichtbarkeit kann durch CASL-Subjects beschnitten werden — fehlt z. B. view:Account, sind Konto-Spalten ausgeblendet.
Hinweise für KIera
Wenn die Spalte gar nicht in der Auswahl erscheint, fehlt eine Berechtigung (view:<Subject>). Verweisen Sie dann auf Berechtigungen verstehen (CASL).
Verknuepfungen
- Auf jede Routen-Funktionsseite, die eine Liste enthält, verlinken Sie diese Seite im Abschnitt Wiederverwendbare Konzepte.
- Berechtigungen verstehen (CASL)
Versionshinweise
- 2026-04-29: Initiale Veroeffentlichung.