SmartFilter #
Der SmartFilter-Dialog ermöglicht die erweiterte Datenauswahl mit verschiedenen Filterkombinationen. Die ausgewählten Datensätze können als SQL-ID-Liste gespeichert und in nachfolgenden SQL-Abfragen verwendet werden.
Set dlg = Client.CreateDialog("Beta.Eulanda.SmartFilter", "")
Eigenschaften #
| Eigenschaft | Typ | Zugriff | Beschreibung |
|---|---|---|---|
FilterObjectName | String | lesen/schreiben | Objektname für die Filterung (z.B. "Eulanda.Artikel") |
Caption | String | lesen/schreiben | Fenstertitel |
Title | String | lesen/schreiben | Überschrift im Dialog |
CreateIdList | Boolean | lesen/schreiben | SQL-ID-Liste aus der Auswahl erstellen |
FilterBaseSqlWhere | String | lesen/schreiben | Basis-WHERE-Klausel |
ListId | Integer | nur lesen | ID der erzeugten SQL-Liste (nach Execute) |
Methoden #
| Methode | Beschreibung |
|---|---|
AddFilter(FilterName, FilterInit) | Fügt einen Filter hinzu |
Execute | Zeigt den Dialog an. Gibt True zurück wenn bestätigt |
Verfügbare Filtertypen #
| Filtername | Beschreibung |
|---|---|
Bereichfilter | Bereichsauswahl |
DatumFilter | Datumsauswahl |
CustomSQLFilter | Benutzerdefinierte SQL-WHERE-Klausel |
OrderByFilter | Sortierreihenfolge |
MerkmalFilter | Merkmalauswahl |
Beispiel #
Artikelauswahl mit anschließender SQL-Abfrage:
Option Explicit
Dim LDialog, LResult
Set LDialog = Client.CreateDialog("Beta.Eulanda.SmartFilter", "")
With LDialog
.FilterObjectName = "Eulanda.Artikel"
.Caption = "Artikelauswahl"
.Title = "Alt-Bestand Übernahme"
.CreateIdList = True
.AddFilter "Bereichfilter", ""
LResult = .Execute
End With
If LResult Then
MsgBox "Die ausgewählten Artikel sind als Id-Liste Nummer " & _
CStr(LDialog.ListId) & " verfügbar"
End If
SQL-ID-Liste verwenden #
Die erzeugte ID-Liste kann in SQL-Abfragen über die Funktion cnf_IDs referenziert werden:
DECLARE @idlist INT
SET @idlist = 42 -- ListId aus dem Dialog
SELECT ar.ArtNummer, ar.ArtMatch, ids.*
FROM dbo.cnf_Ids(@idlist) ids
JOIN Artikel ar ON ar.id = ids.ItemId
ORDER BY ids.Idx
-- Liste nach Verwendung freigeben
EXEC cn_IdListDrop @idlist
Siehe auch #
- MultiSelect – Mehrfachauswahl-Dialog