Color scheme: Light
You are here: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » how-to » Knoten suchen und filtern

Knoten suchen und filtern

Finden Sie Knoten über ihren Text, wählen Sie sie nacheinander aus, und beschränken Sie die Struktur auf die Knoten, die eine Bedingung erfüllen.

Voraussetzungen: WKL Forms Object Library 1.23 oder höher.

Lösungsüberblick

SearchText hebt jeden Knoten hervor, dessen Text den Suchtext enthält, und FindNext wählt die Treffer aus. Benutzer erhalten dasselbe über die Suchleiste (Strg+F, AllowSearch). Filter blendet alle Knoten aus außer den Treffern einer WHERE-Bedingung oder eines JPath-Ausdrucks und deren übergeordneten Knoten. SelectNode und NodeExists finden einen einzelnen Knoten über seinen Pfad.

Umsetzung

With Me!Tree1.Object
    .SearchText = "ö"                    ' highlights matches, loaded or not
    Debug.Print .SearchCount & " matches"
    .FindNext                            ' selects the next match; .FindNext True: previous
    .SearchText = ""                     ' ends the search
 
    .Filter = "Aktiv = True"             ' WHERE condition of the record source, like Form.Filter
    .Filter = "$..[?(@.Checked == true)]" ' or JPath over the loaded nodes
    .Filter = ""                         ' shows everything, view as before the filter
 
    If .NodeExists("Europa\Deutschland") Then .SelectNode "Europa\Deutschland"
    Debug.Print UBound(.FindNodes("$..[?(@.Level == 2)]")) + 1 & " nodes on level 2"
End With

Hinweise

  • Die Suche zählt höchstens 1.000 Treffer. Sie fragt die Datenherkunft ab (LIKE '*text*' auf TextField), es sei denn, die ganze Struktur ist geladen (LazyLoad = False oder GroupFields); dann durchsucht sie die geladenen Knoten.
  • Ein WHERE-Filter fragt die Datenherkunft bei jedem Setzen ab; bei einer Pass-Through-Abfrage läuft die ganze Abfrage auf dem Server.
  • Textpfade werden ohne Beachtung der Groß-/Kleinschreibung verglichen und verwenden PathSeparator (Standardwert: umgekehrter Schrägstrich). Mit LazyLoad werden nur die Ebenen entlang des Pfads geladen.
  • JPath läuft über eine JSON-Ansicht, in der jeder Knoten Key, Text, ParentKey, Image, SortValue, Checked, Level und Nodes hat; FindNodes lädt zuvor die ganze Struktur.
  • In der Suchleiste wechseln F3 und Umschalt+F3 zwischen den Treffern, die Eingabetaste wählt den nächsten aus, und Nur Treffer filtert auf die Treffer.

Verwandte Themen

de/wiki/msaccess/comctl/how-to/search-and-filter.txt · Last modified: by Wolfgang van der Stille