Get-FieldListFromTable #
ÜBERSICHT #
Liefert eine UI-fertige Spalten-Auswahlliste einer EULANDA-Tabelle mit optionaler Vorbelegung (Preset).
SYNTAX #
Get-FieldListFromTable [-Conn] <__ComObject> [-Table] <string> [[-Preset] <string>]
[<CommonParameters>]
BESCHREIBUNG #
Wrappt Get-EulTableSchema und liefert die Spalten in einer Form, die direkt in eine UI-Komponente (z.B. WebKit eul-tree mit Checkboxen) eingespeist werden kann. Über -Preset wird der initiale checked-State pro Eintrag gesetzt – analog zu den Vorbelegungs-Buttons im alten Delphi-Excel-Wizard.
Preset-Verhalten:
Default – alle Spalten gehakt, ausser den Standard-System-Spalten:
ID, STAMP, CREATEDATE, CHANGEDATE, LOCKED, BILD, BILDVORSCHAU.
NoMemo – wie Default, plus Memo-Spalten raus:
KARTEIKARTE, LANGTEXT, INFO.
None – nichts gehakt.
All – alles gehakt, inklusive Identity-/System-Spalten
(explizite Anwender-Entscheidung).
PARAMETER #
-Conn #
Type: __ComObject
ADODB.Connection-Objekt zur EULANDA-Datenbank. Caller-owns.
-Table #
Type: string
Tabellenname (z.B. ‘Artikel’, ‘Adresse’).
-Preset #
Type: string
Default: 'Default'
Initialer Auswahl-Modus. Default ‘Default’ (entspricht Delphi-CheckAll).
AUSGABEN #
[PSCustomObject[]] pro Spalte:
id [string] Spaltenname (geeignet als HTML-id / Tree-Node-id). label [string] Spaltenname (oben in der UI sichtbar). hint [string] Kurzform ‘TypeName ( PK / IDENTITY / COMPUTED )’. checked [bool] Vorbelegung gemäss Preset. isKey [bool] Primärschlüssel-Spalte. isIdentity [bool] Identity-Spalte. isComputed [bool] Computed-Spalte (wird beim Upsert übersprungen). typeName [string] ADODB-Type-Name aus Get-EulTableSchema.
BEISPIELE #
$cols = Get-FieldListFromTable -Conn $conn -Table 'Artikel' -Preset Default
$cols | Where-Object checked | Select-Object id
# Liefert die Spaltennamen, die standardmaessig ausgewählt sind.
# Für eine WebKit-UI als JSON serialisieren
Get-FieldListFromTable -Conn $conn -Table 'Adresse' -Preset NoMemo |
ConvertTo-Json -Depth 3 -Compress
HINWEISE #
Die Exclude-Listen sind als interne Konstanten gepflegt und spiegeln die Delphi-Vorlage aus XeEulanda\Pas\emExchangeExcel.pas (Default- Ausschluss, Memo-Ausschluss). Wenn EULANDA neue System-Spalten einführt, müssen die Listen hier ergänzt werden.
Vergleich auf die Exclude-Listen ist case-insensitiv.