Im SQL Cockpit können Symbole als Platzhalter verwendet werden. Ein Symbol kann entweder einen einzelnen Wert oder eine Range-Tabelle enthalten und wird im Normalfall manuell durch den User gepflegt.
In diesem Beispiel wurde ein Symbol SIMPLE_SYMBOL mit dem Wert ‘0001‘ definiert.
In einem SELECT könnte das Symbol wie folgt in der WHERE Bedingung verwendet werden:
1 |
SELECT * FROM BUT000 WHERE BPKIND = &SIMPLE_SYMBOL& |
Das SQL Cockpit kann aber auch mit mehrwertigen Symbolen umgehen. Dazu muss zum Symbol noch ein Datenelement gepflegt werden. Dann können die Werte über den Button in der Typ-Spalte gepflegt werden.
Die Wertepflege sieht dann z.B. wie folgt aus:
Die Verwendung im SELECT ist geringfügig anders, anstelle einer beliebigen Vergleichsoperation muss hier natürlich vor dem Symbol ein IN verwendet werden:
1 |
SELECT * FROM BUT000 WHERE BPKIND IN &MULTI_SYMBOL& |
Symbolgenerierung aus einer Ergebnisliste
Nun aber zum eigentlichen Thema dieses Blogs. Angenommen, man hat eine relativ umfangreiche Liste erstellt und möchte aus einer Spalte alle Werte als Selektionsparameter für einen anderen Select verwenden.
Um diese Anforderung abzudecken haben wir im Kontextmenü der Spaltenüberschriften eine Funktion zum Erstellen eines Symbols ergänzt. Nach Auswahl der Funktion muss lediglich der Symbolname in einem Popup angegeben werden.
Das zugrundeliegende Datenelement ist bereits gefüllt. Alle Werte werden als „Einzelwerte Selektieren“ in das Symbol aufgenommen. Doppelte Einträge werden natürlich entfernt, leere Werte werden nicht übernommen. Das Symbol kann sofort nach der Generierung verwendet werden.