Filtriranje stolpcev drevesnega seznama
Uporabnikom omogočite, da vozlišča drevesnega seznama zožijo s pogoji za posamezne stolpce – vnesenimi v vrstico filtra ali izbranimi s seznama vrednosti v glavi stolpca –, iste pogoje pa nastavite tudi iz VBA. Vozlišče, ki ustreza pogojem, ostane na svojem mestu v drevesu.
Zahteva WKL Forms Object Library 1.64 ali novejšo različico.
Pregled rešitve
ShowFilterRow pod glavami stolpcev prikaže vrstico z enim pogojem na stolpec. AllowColumnFilter
vsaki glavi stolpca doda lijak, ki odpre seznam vrednosti stolpca, priročnemu meniju glave pa ukaze za
filtriranje. ShowFilterBar pod zapisi prikaže aktivne pogoje s stikalom in ukazom „Počisti filter“.
FilterIncludesChildren določa, ali ustrezno vozlišče s seboj prinese podrejena vozlišča. V
oblikovalniku so te štiri nastavitve v razdelku Filter strani Mreža, združevanje in izvoz.
Iz VBA pogoje nastavite z ColumnFilter in ColumnFilterValues, ColumnFilterEnabled jih začasno
izklopi, ClearColumnFilters pa jih odstrani. Lastnosti, metode in dogodki se imenujejo enako kot pri
WklGrid.
Izvedba
Private Sub Form_Load()
With Me!List1.Object
.ShowFilterRow = True
.AllowColumnFilter = True
.ColumnFilter("Baza") = "BikeBuilder" ' begins with
.ColumnFilterValues("Izid") = Array("zavrnjeno")
Debug.Print .ColumnFilterText
End With
End Sub
Private Sub List1_BeforeColumnFilter(ByVal Column As String, ByVal Text As String, Cancel As Integer)
If Column = "Baza" And Text = "" Then Cancel = True ' keep this condition
End Sub
Pogoji v vrstici filtra: samo besedilo izbere vrednosti, ki se z njim začnejo (Bike); vzorec z *
ali ? (*Builder); samo število ali datum izbere enake vrednosti (100); primerjava (>= 100,
<> zavrnjeno); leer (prazno) ali ni prazno. Števila in datumi se berejo v obliki iz področnih
nastavitev sistema Windows, brez ločil tisočic.
Opombe
- Vozlišče, ki izpolni vse pogoje, ostane vidno skupaj z nadrejenimi vozlišči; ta se razširijo, da je vozlišče vidno na svojem mestu. Vsa druga vozlišča so skrita. Z
FilterIncludesChildrenso prikazana tudi podrejena vozlišča zadetka, tudi tista, ki se naložijo šele ob razširitvi. - Filter stolpcev velja poleg filtra
Filter. „Samo ujemanja“ v vrstici za iskanje prikaže zadetke med vozlišči, ki jih filter stolpcev pusti. - Seznam s sprotnim nalaganjem (
LazyLoad) pogoje kot del poizvedbe pošlje viru zapisov, zato najde tudi vozlišča, ki še niso naložena. Pri več kot 1.000 zadetkih enkrat naloži celotno drevo. Seznam, ki hrani vse zapise (LazyLoadizklopljen,GroupFields, Recordset ali datoteka), primerja naložene vrednosti. - Vozlišča skupin iz
GroupFieldsnimajo vrednosti polj. Vidna ostanejo kot nadrejena vozlišča zadetkov. - Pogoj, ki ne ustreza tipu stolpca, je med vnašanjem prikazan rdeče in ne filtrira; iz VBA sproži
wkeInvalidValue. Če vir zapisov pogoj zavrne, filter ostane tak, kot je bil: uporabnik dobi sporočilo o napaki, VBA pa napakowkeSourceError. BeforeColumnFilterinAfterColumnFiltersporočata uporabnikove spremembe v vrstici filtra, seznamu vrednosti, priročnem meniju glave stolpca in vrstici filtrov, ne pa sprememb iz VBA.- Z
AutoSaveLayoutsi seznam pogoje zapomni za vsakega uporabnika sistema Windows.Resetjih odstrani. WklGanttpodeduje filter stolpcev: časovnica prikazuje ista opravila kot seznam.
Sorodne teme
- Iskanje in filtriranje vozlišč (vrstica za iskanje in
Filter) - Filtriranje stolpcev mreže (isti filter pri
WklGrid)