Color scheme: Light
You are here: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Uporaba Accessove vrstice priročnega menija v mreži

Uporaba Accessove vrstice priročnega menija v mreži

Kontrolniku WklGrid, WklTreeList ali WklGantt dajte v priročnem meniju (desni klik) ukaze svoje aplikacije – „Označi kot opravljeno“, „Natisni dobavnico“ – brez modula obrazca, tako kot jih Accessov obrazec dobi iz svoje lastnosti Vrstica priročnega menija.

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

Pregled rešitve

Accessovi obrazci vzamejo priročni meni iz lastnosti ShortcutMenuBar: imena pojavne ukazne vrstice, katere vnosi pokličejo funkcijo (=Function()) ali makro. Access to lastnost ponuja le za svoje kontrolnike. Kontrolniki WKL imajo lastnost z enakim imenom: vnosi imenovane vrstice se prikažejo v priročnem meniju kontrolnika, privzeto za vgrajenimi vnosi (MenuPlacement). Ko uporabnik izbere vnos, kontrolnik izvede dejanje vnosa tako kot Office; funkcija najde kontrolnik prek Screen.ActiveControl, zapis, nad katerim je bil meni odprt, pa prek ContextKey (ContextColumn za stolpec, ContextView za podrobni pogled).

Nič od tega ne potrebuje modula obrazca: vrstico ob zagonu ustvari standardni modul, lastnost pa se nastavi v pogledu načrta.

Izvedba

  1. Vrstico ustvarite ob zagonu aplikacije v standardnem modulu, funkcijo pa pokličite iz makra AutoExec (dejanje RunCode, CreateOrderMenu()):

    Public Function CreateOrderMenu()
        On Error Resume Next
        CommandBars("mnuNarocila").Delete
        On Error GoTo 0
        With CommandBars.Add("mnuNarocila", 5, False, True) ' 5 = msoBarPopup, temporary
            With .Controls.Add(1)                             ' 1 = msoControlButton
                .Caption = "Označi kot &opravljeno"
                .OnAction = "=MarkOrderDone()"
            End With
            With .Controls.Add(1)
                .Caption = "Natisni &dobavnico"
                .OnAction = "=PrintDeliveryNote()"
                .BeginGroup = True
            End With
        End With
    End Function
  2. V istem standardnem modulu napišite funkcije, ki jih kličejo vnosi:

    Public Function MarkOrderDone()
        Dim grid As Object
        Set grid = Screen.ActiveControl.Object
        If IsNull(grid.ContextKey) Then Exit Function      ' opened on a group row
        CurrentDb.Execute "UPDATE tblNarocila SET Opravljeno = True WHERE NarociloID = " & grid.ContextKey, dbFailOnError
        grid.Requery
    End Function
     
    Public Function PrintDeliveryNote()
        DoCmd.OpenReport "rptDobavnica", acViewPreview, , "NarociloID = " & Screen.ActiveControl.Object.ContextKey
    End Function
  3. Odprite obrazec v pogledu načrta, izberite mrežo in v ShortcutMenuBar vnesite mnuNarocila (list z lastnostmi, zavihek Drugo, ali stran oblikovalnika Vedenje, razdelek Priročni meni). Z MenuPlacement izberite, ali so vnosi za vgrajenimi (privzeto), pred njimi, sami ali sploh ne.

Opombe

  • Vrstica se prebere ob vsakem odprtju menija. Vnos spremenite s kodo – CommandBars("mnuNarocila").Controls(2).Enabled = False –, naslednji meni pa spremembo prikaže.
  • Prikazani so vidni gumbi in podmeniji vrstice z napisom, ShortcutText, omogočenostjo, kljukico (State) in ločilom (BeginGroup). Kombinirana polja, polja za urejanje in slike vrstice niso prikazani.
  • Podrobni pogledi WklGrid prikazujejo enake vnose. ContextKey tedaj vsebuje ključ podrobnega zapisa, ContextView pa ime podrobnega pogleda; oboje preberite iz glavne mreže (Screen.ActiveControl je glavna mreža).
  • Vnos, katerega funkcija ne obstaja, prikaže Accessovo sporočilo, da izraz vsebuje ime funkcije, ki je ni mogoče najti, tako kot pri vnosu Accessove vrstice; preverite ime v OnAction. Napaka, ki je funkcija ne obravnava, prikaže pogovorno okno napake med izvajanjem VBA, zato funkciji dodajte obravnavo napak.
  • Napisi vnosov so vaša besedila; vgrajeni vnosi sledijo jeziku komponent.
  • Z modulom obrazca lahko meni prilagodite za vsak zapis v BeforeContextMenu ali namesto vrstice dodate elemente z AddMenuItem (Dodajanje elementov v priročni meni).

Sorodne teme

sl/wiki/msaccess/comctl/how-to/use-an-access-shortcut-menu-bar.txt · Last modified: by Wolfgang van der Stille