Smart Filter
Zuletzt geändert: 14.03.2026 11:04

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 #

EigenschaftTypZugriffBeschreibung
FilterObjectNameStringlesen/schreibenObjektname für die Filterung (z.B. "Eulanda.Artikel")
CaptionStringlesen/schreibenFenstertitel
TitleStringlesen/schreibenÜberschrift im Dialog
CreateIdListBooleanlesen/schreibenSQL-ID-Liste aus der Auswahl erstellen
FilterBaseSqlWhereStringlesen/schreibenBasis-WHERE-Klausel
ListIdIntegernur lesenID der erzeugten SQL-Liste (nach Execute)

Methoden #

MethodeBeschreibung
AddFilter(FilterName, FilterInit)Fügt einen Filter hinzu
ExecuteZeigt den Dialog an. Gibt True zurück wenn bestätigt

Verfügbare Filtertypen #

FilternameBeschreibung
BereichfilterBereichsauswahl
DatumFilterDatumsauswahl
CustomSQLFilterBenutzerdefinierte SQL-WHERE-Klausel
OrderByFilterSortierreihenfolge
MerkmalFilterMerkmalauswahl

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 #