Color scheme: Riviera
You are here: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Zoženje seznama s filtrirnimi žetoni

Zoženje seznama s filtrirnimi žetoni

Odprite seznam, ki je že zožen z določenim namenom – „potrdila, ki potečejo v 14 dneh“, do katerih uporabnik pride s klikom na ključni kazalnik na začetni strani –, in uporabniku pokažite, zakaj je seznam krajši, ter mu omogočite, da ta razlog odstrani z enim klikom.

Zahteva WKL Forms Object Library 1.45 ali novejšo različico.

Pregled rešitve

  • Filtrirni žeton je poimenovan pogoj WHERE. WklGrid.AddFilterChip(Name, Caption, Condition) zoži zapise; mreža uporabi (Filter) AND (chip 1) AND (chip 2) ..., enako v pomnilniku in v strežniškem načinu.
  • Vrstica filtra ga prikaže. Pod zapisi je vsak žeton prikazan kot gumb „Caption ✕“. Klik, tipka Delete na gumbu ali sprožitev (Invoke) z bralnikom zaslona žeton odstrani, zapisi pa se znova preberejo.
  • Aplikacija za to izve. FilterChipRemoved(Name, ByUser) sporoči vsako odstranitev, tako da ji lahko sledita naslov ali ključni kazalnik.
  • Začetna stran posreduje razlog. WklKpiCard z nastavljenim Key sproži Click(Key); lupina prikaže stran s seznamom in doda žeton, ki pripada ključu.

Izvedba

V modulu obrazca lupine frmShell (kartica na začetni strani kpiExpiring s Key = "expiring", podobrazec strani sfPage):

Option Compare Database
Option Explicit
 
Private Sub kpiExpiring_Click(ByVal Key As String)
    Me!sfPage.SourceObject = "frmPotrdila"
    With Me!sfPage.Form!grdPotrdila.Object
        .ClearFilterChips
        Select Case Key
            Case "expiring"
                .AddFilterChip "expiring", "poteče v 14 dneh", "Potek Between Date() And Date() + 14"
            Case "locked"
                .AddFilterChip "locked", "zaklenjeno", "Stanje = 'zaklenjeno'"
        End Select
    End With
End Sub

V modulu obrazca strani frmCertificates:

Private Sub grdPotrdila_FilterChipRemoved(ByVal Name As String, ByVal ByUser As Boolean)
    If ByUser Then Me!lblHeading.Caption = "Vsa potrdila"
End Sub

Opombe

  • Žeton z obstoječim imenom nadomesti prejšnjega na istem mestu; vrstica ohrani vrstni red. RemoveFilterChip sproži FilterChipRemoved z ByUser = False, ClearFilterChips ne sproži ničesar.
  • Filter ostane lastni pogoj aplikacije in ne vsebuje žetonov. Filtra JPath ($...) ni mogoče kombinirati z žetoni; dokler so žetoni nastavljeni, ga mreža zavrne.
  • Žetoni potrebujejo RecordSource; mreža, vezana le na Recordset (na primer na uporabniškem obrazcu UserForm), jih zavrne.
  • Žetoni se ne shranijo z obrazcem niti v zapomnjeni razporeditvi stolpcev; nastavite jih vsakič, ko stran odprete z določenim namenom.
  • „Počisti filter“ v vrstici odstrani uporabnikove filtre stolpcev, ne pa žetonov.
  • ShowFilterBar = False skrije vrstico; žetoni še vedno veljajo, uporabnik pa jih ne more odstraniti.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/narrow-a-list-with-filter-chips.txt · Last modified: by Wolfgang van der Stille