Widgets
Custom Table
Custom Table
Die Custom Table besteht aus einem Anwendungscode, den du in einem Ninox Formel-Feld auf deiner Wunschoberfläche in der Datenbank einfügst. Dieser besteht aus einem allgemeinen Part (settings), in dem du Grundeinstellungen vornimmst und einem Detail-Bereich (table), in dem du deine Tabelle individuell gestalten und befüllen kannst. (Farben, Werte, Aktionen …)

Gesamter Anwendungscode
Folgend siehst du einen beispielhaften Anwendungscode, der die Basis deiner Custom Table definiert. Da der Code bei der Custom Table sehr umfassend werden kann, leiten wir dich von simpel zu komplex durch.
Mit data definierst du die Inhalte deiner Tabelle. Mit der globalen Funktion arcCustomTable() gibst du dann diese Daten aus.
Allgemeine Settings
In den allgemeinen Settings nimmst du die Grundeinstellungen deiner Tabelle vor. Diese wirkt sich auf alle Spalten und Zeilen deiner Tabelle aus. Folgend werden dir die einzelnen Parameter erläutert:
uniqueListId
uniqueListID ist die individuelle Bezeichnung deiner Tabelle. Achte darauf, dass du hier einen einzigartigen Titel vergibst. Das ist wichtig, falls du mehrere Tabellen auf einer Seite darstellen möchtest und deine Style-Einstellungen nur für diese Tabelle gelten sollen.
tableId
tableId gibt die ID deiner darzustellenden Tabelle an.
height
height gibt die Höhe deiner Tabelle an.
minWidth
Mit minWidth kannst du eine minimale Breite deiner Tabelle definieren.
groupedBy
groupedBy gibt den Wert (Spalte - "field") an, nach dem gruppiert werden soll. Trägst du nichts ein in die "", so wird nach nichts gruppiert.
groupsCollapsed
groupsCollapsed definiert, ob deine Zeilen zusammengestaucht (nur die groupRows) oder ausgeklappt (groupRows und valueRows) angezeigt werden. Dieser Parameter greift natürlich nur, wenn du gruppierte Zeilen definiert hast.
embedded
embedded benutzt du, wenn du die Table in einem Layout integrierst und diese somit eingebettet wird. Standardmäßig ist dies aber auf false gesetzt.
rowHoverAction
Block
Mit dem rowHoverAction Block kannst du bestimmen, ob das hovern über die row angezeigt werden soll und welche Farbe der Hintergrund und welche die Schrift beim hovern haben soll.
header
Block
Mit dem header Block kannst du mit showHeader: false
die header Zeile deiner customTable ausblenden. Außerdem kannst du Höhe, Schriftfarbe, Schriftgröße und Hintergrundfarbe einstellen.
emptyTable
Block
Mit dem emptyTable
Block definierst du, was ausgegeben werden soll, wenn es keine Einträge in der Tabelle gibt.

scrollBar
Block
Im scrollbar Block kannst du Einstellungen für die horizontale Scrollbar vornehmen. Mit showScrollbar: true
kannst du bestimmen, dass die Scrollbar angezeigt werden soll. Außerdem kannst du die Höhe und Hintergrundfarbe des containers sowie die Höhe und Hintergrundfarbe und den borderRadius des handle (Schiebers) bestimmen.
theme
theme
ist ein vorgefertigtes Design / Gestaltungsvorlage, die bestimmt, wie deine Tabellen-Oberfläche in Bezug auf Farben, Schriftarten, Layout und andere Design-Elemente aussieht. Aktuell gibt es ein alternativen Theme für die Custom Table: Clean White.
footer
Block der Tabelle
footer
definiert, ob du einen unteren Bereich deiner Tabelle definieren möchtest. Hier kannst du auch Aktionen hinzufügen.
So sieht der oben definierte Footer aus:

showFooter definiert, ob ein Footer angezeigt wird oder nicht.
showActionButton definiert ob ein Aktions Button angezeigt wird oder nicht. Die Aktion bedeutet immer, dass ein neuer Datensatz in der referenzierten Tabelle erstellt wird. (create record)
backgroundColor
Mit dem Parameter backgroundColor
definierst du die Hintergrundfarbe deines Footers.
actionButtonTitle definiert den Text innerhalb deines Buttons.
leftSideContent definiert, was auf der linken Seite deines Footers stehen soll. Hier bist du frei in der Gestaltung.
rightSideContent definiert, was auf der rechten Seite deines Footers stehen soll. Hier bist du frei in der Gestaltung.
Standard-Werte als Fallback
💡 Hinweis: Alle Werte der Parameter werden in Anführungszeichen angegeben. Trägst du nichts in die Anführungszeichen ein, so greift das System auf ein Fallback zurück, der im globalen Code definiert ist. Das heißt es gibt voreingestellte Standard-Werte, sodass immer etwas ausgegeben wird. Hier siehst du den Code der Standard-Werte:
Detail-Bereich
Im Detail-Bereich (table) definierst du alle Styles und Werte deiner Tabellenspalten & -inhalte. Das heißt: Jede Spalte kann individuell gestaltet werden. Die Styles überschreiben in dem Fall die Werte aus den Allgemeinen Settings.
rowHeight kannst du in folgenden Werten angeben:
rowPaddingY definiert wie viel padding nach oben und unten in einer Zeile eingestellt werden soll.
groupRowColor kannst du in folgenden Werten angeben:
groupRowHeight kannst du in folgenden Werten angeben:
Parameter für die Spalten
columns definiert deine einzelnen Spalten in der Tabelle. Folgend siehst du die Basics, die du einstellen kannst.
Die Custom Table kann um einiges komplexer und individueller gestaltet werden. Folgend werden dir alle Parameter aufgelistet, die du bei columns einsetzen und definieren kannst.
Align
align gibt an wie sich dein Inhalt innerhalb der Zelle ausrichtet. Du hast folgende Möglichkeiten:
Fixed
fixed gibt an, ob deine Spalte am Rand haften bleiben soll und somit immer sichtbar ist. Scrollst du bei vielen Inhalten in der Tabelle nach rechts, bleibt deine gefixte Leiste immer sichtbar.
Gruppen ausklappen mit groupExpandAction
Mit groupExpandAction kannst du bestimmen, bei welchen Spalten die Funktion des Ausklappens aktiviert sein soll. Das funktioniert nur, wenn du eine Gruppierung in deiner Tabelle eingestellt hast. Aktivierst du es bei mindestens einer Spalte (mit groupExpandAction:true), ist es bei den anderen Spalten automatisch deaktiviert, sofern du es dort nicht auch mit aktivierst in den Parametern.
Aktionen
Du kannst für deine Zellen-Werte drei verschiedene Aktionen ausführen: popup, delete und update. Der Grundschreibweise einer Aktion wird wie folgt geschrieben:
💡 Hinweis: Du kannst auch mehrere Aktionen auf einem Feld ausführen. Diese trennst du durch ein Komma (,). Zum Beispiel so:
Aktion Popup
type: "popup" öffnet einen Record. Diese Funktion wirkt sich auf jede einzelne Zelle aus.
Aktion Delete
type: "delete" löscht einen Record. Diese Funktion wirkt sich auf jede einzelne Zelle aus.
Aktion Update
type: "update" aktualisiert / manipuliert einen Record. Diese Funktion wirkt sich auf jede einzelne Zelle aus.
Aktion openFullscreen
type: "openFullscreen" öffnet Datensätze im Fullscreen. Diese Funktion wirkt sich auf jede einzelne Zelle aus.
💡 Hinweis: Um die Ninox Feld-ID bestimmter Felder herauszufinden, gibt es zwei Möglichkeiten:
Du Trägst den richtigen Feldnamen bei dem Parameter field ein. Nach dem Speichern wird dir die Feld-ID in der Kopfzeile deiner Tabelle angezeigt. Achte darauf, dass der field Inhalt exakt so geschrieben ist, wie der Ninox Feldname. Andernfalls wird die ID nicht angezeigt. Außerdem werden die Feldnamen nur ausgegeben, wenn du im Bearbeitungsmodus bist.
2. Du verwendest die nützliche Funktion arcFieldFinder().
Group Value
Mit groupValue definierst du den Inhalt, der in der Gruppierungszeile angezeigt werden soll. Diesen Parameter kannst du in jeder Spalte definieren - auch mehrfach. Du kannst in den groupValue reinen Text hinterlegen oder auch weitere Mini-Widgets wie das Layout, den Button oder andere integrieren.

groupByValue
Der groupByValue Parameter erlaubt es nach anderen Werten als dem cell content (value) zu gruppieren. Items mit leerem value oder leerem groupByValue werden in einer "arc-no-value" Gruppe gruppiert.
Beispiele
Folgend findest du einige Praxisbeispiele, die dir den unterschiedlichen Einsatz der Custom Table veranschaulichen.
Custom Table Simple

Custom Table Complex

Weiterführende Links: