Skip to main content

Reiter „Spalten“

Die Spaltenliste ist die ganze Schnittstelle einer Definition: eine Spalte, die hier nicht steht, wird nicht geliefert, lässt sich nicht filtern, sortieren oder durchsuchen und wird beim Anlegen und Ändern abgewiesen – gleich, was in der SQL-Tabelle steht.

Die Leiste über der Liste

Knopf Wirkung
+ Spalte hängt eine leere Spalte vom Typ text an
+ aus Tabelle … übernimmt Spalten aus dem gelesenen Tabellenaufbau (siehe unten)
↑ / ↓ verschiebt die ausgewählte Spalte; die Reihenfolge ist die der Anzeige
Kopie legt eine Kopie mit dem Zusatz _Kopie direkt darunter an
Entfernen nimmt die Spalte aus der Definition – die SQL-Tabelle bleibt unberührt

In der Liste steht hinter dem Namen der meta.type. Ein kennzeichnet den Primärschlüssel. Eine hervorgehobene Zeile heißt: diese Spalte gibt es in der SQL-Tabelle nicht – der Router lässt sie aus jeder Antwort weg.

Ein leerer Eintrag entsteht durch ein Loch in der JSON-Liste ([ {…}, , {…} ]). Der Router übergeht ihn, das Speichern entfernt ihn.

+ aus Tabelle …

Zeigt alle Spalten der SQL-Tabelle, die noch nicht deklariert sind, mit SQL-Typ, Schlüssel- und Pflichtkennzeichen. Angehakte werden übernommen, und der Editor schlägt dabei gleich etwas vor:

  • Primärschlüssel → meta.type = key, nicht sichtbar
  • Spalte Licencemeta.type = licence, nicht sichtbar
  • bitcheckbox, intint, decimalnumber, datedate, datetimedatetime, alles andere → text mit Suchfeld
  • Datums- und Zeitspalten mit Standardwert sowie hochgezählte Spalten werden beim Anlegen nicht änderbar
  • Principal und CompanyCode bekommen die Firmenliste aus der Tabelle principal als Werteliste vorgeschlagen – bei CompanyCode mit dem Standardwert ANY. Liegt die Definition nicht selbst in DEX_MasterData, wird die Verbindung dorthin gleich mit eingetragen

Alle Vorschläge lassen sich danach ändern.

Das Formular einer Spalte

Ist der Tabellenaufbau gelesen, steht oben eine Zeile dazu, was die Datenbank über diese Spalte sagt: Typ und Länge, Primärschlüssel, hochgezählt, NULL oder NOT NULL, Standardwert und ob sie beim Anlegen Pflicht ist.

Feld Eigenschaft Bedeutung
Name name Der SQL-Spaltenname. Er ist der Schlüssel in den Zeilen und beim Schreiben. Pflichtfeld
Beschriftung label Fehlt sie, zeigt der Client den Namen
SQL-Typ (nur View) type Views werden nicht ausgelesen – der Typ kommt von hier. Ohne ihn meldet die API string
Typ meta.type text, int, number, date, datetime, checkbox, list, multiplelist, combobox, comboboxText, popup, iconorlist, key, licence, hidden. key und licence sind die technischen Spalten, hidden lässt die Spalte in der API, aber nicht im Formular
Sichtbar meta.show nein blendet die Spalte in der Liste aus
Standardwert meta.defaultValue Wird beim Anlegen vorbelegt. Als Text, Zahl, ja, nein oder leer (null)
Suchfeld meta.searchAutocomplete Nimmt die Spalte in die Suche der Autovervollständigung auf
Werteliste Woher die Auswahl kommt (siehe unten)

Werteliste

Vier Wege, die einander ausschließen. Der Client wertet sie in dieser Reihenfolge aus: possibleValues vor meta.listScript vor meta.listItems.

Auswahl Was passiert
keine freies Feld
feste Liste Die Einträge stehen als meta.listItems in der Definition selbst – der Weg, den der DEX-Client für eine feste Auswahl kennt. Je Eintrag key (gespeicherter Wert) und label (angezeigter Text). Einträge ohne beides lässt der Client weg
aus einem Skript meta.listScript nennt ein Portalskript; der Client ruft es über dex_callScript auf und erwartet eine JSON-Zeichenkette mit { value, label }. Darunter stehen die meta.listScriptParams als Name-Wert-Liste – DOCUMENTS übergibt sie als Text
aus anderer Tabelle Nachgeschlagen in einer Tabelle, geliefert unter /table/<Definition>/col/<Spalte>/possibleValues
feste Liste in possibleValues Erscheint nur, wenn eine Definition sie schon mitbringt. Die API liefert sie, der DEX-Client zeigt sie nicht. Der Knopf In feste Liste übernehmen macht meta.listItems daraus

Für aus anderer Tabelle:

Feld Bedeutung
Verbindung der Liste leer lassen, wenn die Tabelle in derselben Datenbank liegt wie die Definition
Tabelle der Liste Pflichtfeld – fehlt sie, endet der Aufruf mit 404
Wertespalte die Spalte, deren Werte angeboten werden. Pflichtfeld
Anzeige Vorlage für den angezeigten Text, {{Spaltenname}} wird je Zeile ersetzt
Schema / Katalog (erweitert) MySQL: schema = Datenbankname, catalog = def. MS SQL: schema = dbo, catalog = Datenbankname
WHERE-Bedingung der Liste (erweitert) schränkt die Liste ein
Wertespalte darf der Client wählen (erweitert) valueColumnByClient

Übersetzungsfilter

meta.translationFilter sagt, wo die Übersetzungen der Liste stehen: Application, PropType und PropTypeSubCategory bilden einen festen Filter auf die Übersetzungstabelle. Aneinandergehängt sind sie zugleich der Namensraum, unter dem der Client die geladene Liste behält – zwei Spalten mit demselben Filter teilen sie sich. Ohne Filter bleiben die Beschriftungen unübersetzt.

Der Filter gilt für alle drei Listenarten: feste Einträge, Einträge aus einem Skript und die Beschriftungen einer nachgeschlagenen Liste.

Erweitert

Feld Eigenschaft Bedeutung
Pflichtfeld mandatory Vorgabe entscheidet die Datenbank (NOT NULL, kein Standardwert, keine Identity)
Beim Anlegen änderbar editableOnInsert nein blendet das Feld schreibgeschützt ein; Pflichtspalten bleiben änderbar
Beim Ändern änderbar editableOnUpdate Primärschlüssel sind nein, solange hier nichts anderes steht
meta.label meta.label überschreibt die Beschriftung im DEX-Tabellenclient
Breite meta.layout Breite des Eingabefelds im Raster, 1 bis 12
Änderbar / Pflicht im Client / „ANY“ anbieten meta.editable, meta.mandatory, meta.addAny Verhalten im Client
Listenformat meta.listFormat z. B. %value% (%label%)
Unbekannten Wert zeigen meta.showValueNotFound zeigt einen gespeicherten Wert, den es in der Liste nicht mehr gibt
Technischen Wert zeigen meta.showTechnicalNameInList
Übersetzungsvorsatz meta.translationPrefix wird den nachgeschlagenen Schlüsseln vorangestellt; ohne Übersetzungsfilter wirkungslos
Liste immer neu laden meta.alwaysLoadList nötig, wenn zwei Spalten denselben Filter, aber verschiedene Werte haben
Weitere meta-Eigenschaften (JSON) z. B. listFilter, iconName, width – bleiben erhalten
Weitere Eigenschaften der Spalte (JSON) bleiben erhalten