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.
Links die Liste der deklarierten Spalten, rechts das Formular zur ausgewählten.
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
Licence→meta.type = licence, nicht sichtbar bit→checkbox,int→int,decimal→number,date→date,datetime→datetime, alles andere →textmit Suchfeld- Datums- und Zeitspalten mit Standardwert sowie hochgezählte Spalten werden beim Anlegen nicht änderbar
PrincipalundCompanyCodebekommen die Firmenliste aus der Tabelleprincipalals Werteliste vorgeschlagen – beiCompanyCodemit dem StandardwertANY. Liegt die Definition nicht selbst inDEX_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 |
No comments to display
No comments to display