Barvna shema: Svetla
Trenutno dejavna stran: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » WKL Forms Object Library: kontrolniki za obrazce Access

WKL Forms Object Library: kontrolniki za obrazce Access

Kontrolniki ActiveX za obrazce Microsoft Access, zgrajeni na .NET 10: drevesa, podatkovni listi, gantogram, postavitev, krmarjenje, gumbi, prikaz stanja, preverjanje vnosa in obvestila. Delujejo, kot da so del Accessa: zgodnja vezava z IntelliSense, nastavitve v listu z lastnostmi in v oknu oblikovalnika, dogodki v modulu obrazca, stalne številke napak ter delovanje v datotekah ACCDB in ACCDE in v okolju Access Runtime. Dokumentacija je namenjena razvijalcem v Accessu in VBA, ki kontrolnike postavljajo na obrazce, ter skrbnikom, ki jih nameščajo v računalnike uporabnikov. Trenutna izdaja: 2.0.0 – spremembe posameznih izdaj so opisane v datoteki CHANGELOG.md paketa izdaje. Do izdaje 1.68.2 se je knjižnica imenovala WKL Access Components.

Kateri problem rešujejo

Kontrolniki, ki jih Access ponuja v pogledu načrta (polje z besedilom, kombinirano polje in polje s seznamom, podobrazec, kontrolnik zavihka, gumb in podobni), zadoščajo za klasičen vnos podatkov. Manjka pa marsikaj, kar uporabniki danes pričakujejo od poslovne programske opreme: drevo, vezano na tabelo, podatkovni list, ki združuje, filtrira in sešteva kot sodobna mreža, gantogram, vrstica za krmarjenje, pripeta območja, ki sledijo velikosti okna, oznake stanja in kratka obvestila. Razvijalci v Accessu to vrzel zapolnjujejo z zasilnimi rešitvami – gnezdenimi podobrazci, neprekinjenimi obrazci s pogojnim oblikovanjem, nevezanim kontrolnikom Microsoft TreeView iz zbirke Common Controls, ki ga polni VBA. Takšne rešitve v vsaki aplikaciji zahtevajo lastno kodo, pa vendar se po videzu in vedenju še vedno razlikujejo od preostalega Officea.

Zbirke komponent, kot sta DevExpress WinForms in Telerik UI for WinForms, to težavo rešujejo za aplikacije .NET s kontrolniki Windows Forms. Obrazec Access pa sprejme samo kontrolnike ActiveX, zato teh zbirk v Accessu ni mogoče uporabiti. WKL Forms Object Library primerljive zmožnosti prinaša v Access v obliki kontrolnikov ActiveX, ki upoštevajo navade Accessa: RecordSource, LinkMasterFields, Requery, list z lastnostmi, dogodki v modulu obrazca, ACCDE in okolje Runtime.

Primeri uporabe

NalogaKontrolnik
Prikaz hierarhije iz tabele (organizacija, kosovnica, mape) in urejanje z vlečenjem in spuščanjemWklTreeView, WklTreeList
Seznam zapisov z združevanjem, vrstico filtra, seštevki, glavnimi in podrejenimi zapisi ter milijonom vrstic s strežnikaWklGrid
Urejanje enega zapisa kot seznama lastnosti ob seznamuWklPropertyGrid
Načrtovanje opravil z odvisnostmi in delovnim koledarjem, izmenjava načrtov z Microsoft ProjectWklGantt
Lupina aplikacije s krmarjenjem na levi, glavo z ukazi in stranmi, ki zapolnijo oknoWklNavBar, WklActionBar, WklDockLayout
Preverjanje vnosa po pravilih, preden se zapis shrani, s sporočilom ob poljuWklValidator
Povezovanje tabel s strežniki za razvoj, preizkušanje in produkcijo ter preklapljanje med njimiWklLinkManager
Prikaz niza meritev z mejami in trendom ali števil po mesecihWklChart
Prikaz, kje se kaj dogaja: prijave po mestih, lokacije ali stranke na zemljevidu svetaWklMap
Iskanje med tipkanjem, osveževanje števca vsakih 30 sekund, pošiljanje velikega števila spletnih zahtev v tempu, ki ga dovoljuje storitevWklTimerList
Merjenje in prikaz ključnega kazalnika, stanja ali številaWklGauge, WklStatusLabel, WklBadge

Kje so meje: komponente ne nadomeščajo Accessovih kontrolnikov za preprosta vnosna polja, v poročilih ne delujejo kot seznami (seznam tam prikaže le obvestilo) in niso kontrolniki Windows Forms za aplikacije .NET.

Prvi koraki

Pogosta opravila

Grafični prikaz

graph TD
    P["1 – Paket izdaje: x86 ali x64, tools, addin, control-blocks"]
    F["2 – Računalnik, za vsakega uporabnika sistema Windows: lokalna mapa (brez skrbniških pravic)"]
    A["3 – Access: pogovorno okno s kontrolniki ActiveX navaja WKL Grid, WKL TreeView …; sklic WKL Forms x.y Object Library"]
    R["4 – Obrazec s kontrolniki WKL: list z lastnostmi, oblikovalnik, dogodki v modulu obrazca"]
    P -- "kopiranje" --> F
    F -- "registracija: regsvr32 /n /i:user" --> A
    A -- "vstavljanje kontrolnika" --> R
ObmočjePomen
1Izdaja: kontrolniki v bitni različici Officea, orodje za gradnjo, dodatek WKL Extensions in gradniki kontrolnikov
2Datoteke, kopirane v trajno mapo in registrirane za trenutnega uporabnika sistema Windows
3Access ponudi kontrolnike in knjižnico tipov; ko kontrolnik vstavite, se sklic nastavi sam
4Vsak kontrolnik na obrazcu nastavite v listu z lastnostmi, v njegovem oblikovalniku ali z VBA

Ključne zmožnosti

Kontrolnike postavite na Accessove obrazce (ali na obrazce UserForm); komponente, označene z (objekt), ustvarite v VBA in nimajo lastnega okna.

Pogledi podatkov

Prikaz in urejanje zapisov iz tabel in poizvedb.

KomponentaNamenDokumentacija
WklGridPodatkovni list brez hierarhije, z združevanjem, filtri stolpcev, glavnimi in podrejenimi zapisi, podrobnimi pogledi, strežniškim načinom za velike tabele in pogledom seznama.pregled · referenčni priročnik (v angleščini)
WklTreeViewDrevo, vezano na tabelo, poizvedbo ali stavek SQL, z urejanjem, vlečenjem in spuščanjem, iskanjem in filtrom.pregled · referenčni priročnik (v angleščini)
WklTreeListHierarhični podatkovni list: drevo s stolpci, urejevalniki celic, oblikovanjem, seštevki in izvozom v Excel.pregled · referenčni priročnik (v angleščini)
WklGanttGantogram na podatkovnem listu, z odvisnostmi, delovnim koledarjem, razporejanjem in izmenjavo z Microsoft Project.pregled · referenčni priročnik (v angleščini)
WklPropertyGridEn zapis kot vrstice „napis · vrednost“ v kategorijah, na lastnem obrazcu ali kot podrobnosti.pregled · referenčni priročnik (v angleščini)
WklChartČrtni, točkovni, stolpčni ali palični grafikon tabele ali poizvedbe, ki sledi trenutnemu zapisu, z mejami, pasovi in trendom.pregled · referenčni priročnik (v angleščini)
WklMapTočke na zemljevidu sveta iz tabele ali poizvedbe, velikost in barva glede na vrednost; sledi trenutnemu zapisu in deluje brez kartografske storitve.pregled · referenčni priročnik (v angleščini)

Urejevalniki podatkov

Posamezne vrednosti na obrazcu, vezane tako kot kontrolniki Accessa.

KomponentaNamenDokumentacija
WklToggleSwitchPreklopno stikalo Da/Ne s takojšnjim učinkom, vezano kot potrditveno polje.pregled · referenčni priročnik (v angleščini)
WklTokenBoxVeč vrednosti zapisa kot žetoni s predlogi, shranjeni v podrejeni tabeli.pregled · referenčni priročnik (v angleščini)
WklButtonEditPolje z besedilom z gumbom na desni, vezano kot polje z besedilom, za vrednosti iz pogovornega okna ali preverjanja.pregled · referenčni priročnik (v angleščini)
WklSpinEditŠtevilo s puščicama gor in dol, mejami, korakom in enoto, vezano kot polje z besedilom; tudi kot stolpec seznama (wedSpin).pregled · referenčni priročnik (v angleščini)
WklValidatorPolja z besedilom na Accessovem obrazcu preveri po pravilih in prepreči, da bi se napačen zapis shranil.pregled · referenčni priročnik (v angleščini)

Postavitev

Razporejanje, deljenje ter razpiranje in strnjevanje območij obrazca.

KomponentaNamenDokumentacija
WklDockLayoutOb vsaki spremembi velikosti obrazca razporedi njegova območja v cone, z razdelilniki in skupinami zavihkov.pregled · referenčni priročnik (v angleščini)
WklSplitterRazdelilnik med dvema območjema obrazca, ki ga uporabnik premika ali z njim strne eno stran.pregled · referenčni priročnik (v angleščini)
WklDrawerPlošča ob desnem robu obrazca, ki se odpre ob seznamu; vsaka vsebina ima svojo širino, kontrolniki v njej pa sidra.pregled · referenčni priročnik (v angleščini)

Krmarjenje in ukazi

Premikanje po aplikaciji in zaganjanje njenih ukazov.

KomponentaNamenDokumentacija
WklNavBarVrstica za krmarjenje v lupini aplikacije, napolnjena s kodo ali iz tabele za krmarjenje.pregled · referenčni priročnik (v angleščini)
WklActionBarGlava strani ali lupine aplikacije: naslov, podnaslov, stanje in vrstica ukazov z razdeljenimi gumbi in bližnjicami; ukazi, ki ne gredo v vrstico, se premaknejo v meni.pregled · referenčni priročnik (v angleščini)
WklButtonUkazni gumb, gumb z menijem, razdeljeni ali segmentni gumb v videzu sodobnega Officea.pregled · referenčni priročnik (v angleščini)
WklRibbon (objekt)Trakovi, pogled Datoteka in priročni meniji podatkovne zbirke iz enega seznama ukazov, z oblikovalnikom in pogoji.pregled · referenčni priročnik (v angleščini)
WklNavPane (objekt)Podokno za krmarjenje programa Access kot ena kategorija s skupinami, prikaznimi imeni, začetno skupino in pogoji, z oblikovalnikom.pregled · referenčni priročnik (v angleščini)

Stanje in povratne informacije

Prikaz stanj, števil in rezultatov uporabniku.

KomponentaNamenDokumentacija
WklStatusLabelStanje v eni vrstici – besedilo z vrsto, ki določa njegove barve –, vezano kot polje z besedilom.pregled · referenčni priročnik (v angleščini)
WklBadgeŠtevilo ali pika na kotu gumba, oznake ali polja z besedilom Access.pregled · referenčni priročnik (v angleščini)
WklToast (objekt)Kratka obvestila po dejanju, z izbirnim dejanjem, kot je Razveljavi.pregled · referenčni priročnik (v angleščini)
WklGaugeVrednost na lestvici z barvnimi območji: polkrog ali tričetrtinski krog, vodoravna ali navpična palica, več palic z legendo.pregled · referenčni priročnik (v angleščini)
WklKpiCardKljučni kazalnik za začetno stran: vrednost, odstopanje od primerjalne vrednosti, stanje, mini grafikon, značka; klikljiva kot ploščica.pregled · referenčni priročnik (v angleščini)

Predstavnost

Črtne kode, kode QR in slike na obrazcih in v poročilih.

KomponentaNamenDokumentacija
WklBarcodeKoda QR, Code 128 ali Data Matrix iz besedila, vezana kot polje z besedilom; v poročilih koda za vsak zapis.pregled · referenčni priročnik (v angleščini)
WklImageSlika iz datoteke, galerije slik podatkovne zbirke, besedila SVG ali polja; SVG ostane oster pri vsaki velikosti, enobarvni simboli prevzamejo barvo obrazca.pregled · referenčni priročnik (v angleščini)

Aplikacija in povezave

Aplikacija kot celota in njeni viri podatkov.

KomponentaNamenDokumentacija
WklApplication (objekt)Naslov, ikona, začetni obrazec, trak in uporabniški vmesnik vsakega načina (razvoj, upravljanje, produkcija) kot zagonske lastnosti, z nastavitvami, ki jih sme prilagoditi upravljavec.pregled · referenčni priročnik (v angleščini)
WklLinkManager (objekt)Povezane tabele ODBC podatkovne zbirke sprednjega dela usklajuje z nastavitvami za posamezen profil (DEV, TEST, PROD).pregled · referenčni priročnik (v angleščini)
WklTimerListČasovno načrtovana opravila obrazca: zakasnjeno iskanje, redna preverjanja in čakalna vrsta spletnih zahtev v nadzorovanem tempu, brez zanke DoEvents.pregled · referenčni priročnik (v angleščini)
WklTexts (objekt)Lastna besedila aplikacije po ključu v jeziku komponent, iz tabele USysWklTexts; standardna besedila, kot so V redu, Prekliči in Shrani, v vseh petih jezikih.navodila · referenčni priročnik (v angleščini)

FindNodes, filtri JPath in AsJSON uporabljajo mehanizem JSON iz knjižnice WKL Office JSON, ki je vključena v paket izdaje. Za hiter začetek je na voljo predloga lupine aplikacije z vrstico za krmarjenje, stranjo v podobrazcu in vrstico z ukazi (v paketu pod templates\app-shell).

Osnovni pojmi

Trije načini nastavljanja kontrolnika. List z lastnostmi (zavihek Drugo), okno oblikovalnika kontrolnika (Odpiranje oblikovalnika kontrolnika) in VBA prek lastnosti Object kontrolnika (Me!Tree1.Object.RecordSource = …). Vsi trije nastavljajo iste lastnosti, ki jih Access shrani z obrazcem.

Dogodki v modulu obrazca. Kontrolnik svoje dogodke sproži v modulu obrazca, na katerem je. Na zavihku Dogodek lista z lastnostmi jih Access ne navaja; procedure ustvarite na strani oblikovalnika Dogodki ali s seznamoma v oknu s kodo (Ustvarjanje dogodkovnih procedur za kontrolnik).

Vezava na podatke kot pri kontrolnikih Accessa. Seznami berejo RecordSource (tabelo, poizvedbo ali stavek SQL) in uporabnikove spremembe takoj zapišejo nazaj (AutoSave); za drevo zadoščajo RecordSource, KeyField, ParentField in TextField. Kaj mora vir zapisov omogočati, opisuje razdelek Urejanje in shranjevanje: predpogoji. V pogledu načrta kontrolnik vira podatkov ne bere, razen če je LivePreview nastavljen na True (Prikaz resničnih podatkov v pogledu načrta).

Stalne številke napak. Kontrolniki sprožajo napake s stalnimi številkami (konstante WklErrorCode) in z Err.Source = "WklForms"; besedila, ki jih vidijo uporabniki, so v jeziku komponent (Obravnava napak kontrolnikov WKL v VBA).

Jezik. Oblikovalniki, sporočila, Err.Description, priročni meniji in imena za bralnike zaslona so v angleščini, nemščini, slovenščini, hrvaščini ali italijanščini: v jeziku modela aplikacije, sicer v jeziku Officea, sicer sistema Windows, sicer v angleščini. Številke napak, imena lastnosti, shranjene vrednosti in IntelliSense so v vseh jezikih enaki; datumi in števila sledijo področnim nastavitvam sistema Windows (Izbira jezika komponent).

Barve. Vsak kontrolnik ima barvno shemo (ColorScheme). Privzeta samodejna shema najprej upošteva visoki kontrast sistema Windows, nato barve teme podatkovne zbirke Access (na primer „Riviera“), sicer uporabi svetlo paleto; svetlo, temno ali visokokontrastno shemo lahko izberete tudi izrecno. Kontrolniki ne sledijo temi Officea (barvita, temno siva, črna), ki jo Office hrani za vsak uporabniški račun posebej (Usklajevanje barv s temo podatkovne zbirke).

Ena knjižnica tipov, katere različica sledi vmesniku. Podatkovna zbirka se sklicuje na knjižnico tipov WKL Forms Object Library in ob odpiranju uporabi različico, registrirano v računalniku; glejte Različice.

Skrbništvo

Odpravljanje težav

Vsaka stran opiše simptom, različice, na katere se nanaša, vzrok in rešitev.

PodročjeStrani
NamestitevOkolje .NET 10 Desktop Runtime ni nameščeno · Kontrolnik WKL ali sklic manjka (napačna bitna različica) · Access sporoča, da je naložena druga različica .NET · Aplikacija se odpre, njena koda pa se ne izvaja
Vsi kontrolnikiBesedila se prikažejo v drugem jeziku, kot ste pričakovali · Dogodkovna procedura se nikoli ne pokliče · Access se po brisanju ali napaki ne odziva več · Branje povezane tabele ODBC se nikoli ne konča · Kontrolnik namesto vozlišč prikaže besedilo napake · Pogled načrta namesto podatkov prikaže vzorčna vozlišča · Dogodkov kontrolnika ni na zavihku Dogodek · „Method or data member not found“ za kontrolnik na obrazcu UserForm · Kopiranje in lepljenje po številnih sejah Accessa ne delujeta · UI Automation najde samo obrazec Accessa, ne pa kontrolnika WKL
Urejanje in shranjevanjeCelice ni mogoče urejati · Spremembe v drevesu se ne shranijo · Podatkovna storitev zavrne spremembo · Obrazec postane počasen po obravnavi dogodkov NodeFormat ali CellFormat
WklGridSeštevki v strežniškem načinu ostanejo prazni · Accessov podobrazec ne sledi mreži
WklGanttČasovnica ne prikaže palic · Uvoz datoteke Project znova doda opravila
WklLinkManagerUpravitelj povezav ne more določiti profila · Tabele ob zagonu niso povezane · Vnosa dodatka ni
PostavitevPostavitev ne razporedi kontrolnika · Postavitev ostane široka, ko se okno zmanjša
WklNavBarVrstica za krmarjenje se odpre v drugem načinu, kot je bila načrtovana · Bližnjica vrstice za krmarjenje ne naredi ničesar · Vnosi iz tabele za krmarjenje manjkajo
WklNavPane, WklRibbon, WklApplicationPodokno za krmarjenje prikaže več, kot določa model · Trak se po shranjevanju ne prikaže · Zagonska možnost ne učinkuje
WklStatusLabelOznaka stanja ne prikaže ničesar ali prikaže napačno barvo
WklButton, WklToggleSwitchOnemogočen gumb ali stikalo ni izrisano
WklValidatorPreverjalnik ničesar ne preveri · Zavrnjeno shranjevanje se ne pokaže v povzetku preverjalnika
WklTokenBoxV polje z žetoni ni mogoče dodati žetonov
WklToastDejanje obvestila ne naredi ničesar ali pa se obvestilo ne prikaže
WklBadgeZnačka se ne prikaže ali se ne prikaže na svojem cilju

Za razvijalce

Sorodne teme

  • CHANGELOG.md v paketu izdaje – kaj je spremenila posamezna izdaja
  • Predloga lupine aplikacije (v paketu pod templates\app-shell, opisana v tamkajšnji datoteki README) – okvir aplikacije, ki ga zgradi orodje za gradnjo

Referenčni priročnik

Različice

Kontrolniki si delijo eno knjižnico tipov, WKL Forms Object Library, katere različica se zviša ob vsaki spremembi vmesnika. Izdaja ima različico x.y.z: x.y je različica knjižnice tipov, z šteje popravke brez spremembe vmesnika. Spremembe posameznih izdaj so opisane v datoteki CHANGELOG.md paketa izdaje; trenutna izdaja je 2.0.0.

Kontrolnik ali objektOd izdaje
WklTreeView, WklTreeList, WklGantt, WklGrid, WklSplitter, WklDockLayout, WklStatusLabel, WklLinkManager1.23.0
WklNavBar1.24.0 (tabela za krmarjenje: 1.26.0)
WklButton1.26.0 (razdeljeni in segmentni gumbi, značka: 1.27.0)
WklValidator1.31.0
WklToggleSwitch1.32.0
WklTokenBox1.33.0
WklToast1.34.0
WklBadge1.35.0
Pogled seznama WklGrid1.36.0
Skupine zavihkov WklDockLayout1.37.0
WklPropertyGrid1.38.0
WklButtonEdit, WklSpinEdit1.43.0
WklGauge, WklKpiCard1.44.0
WklActionBar1.46.0
ColorScheme vseh kontrolnikov in WklToast; EditOnClick mrež1.47.0
WklDrawer1.48.0
WklRibbon in oblikovalnik trakov1.49.0
WklNavPane, oblikovalnik podokna za krmarjenje in predloga lupine aplikacije1.50.0
WklApplication, oblikovalnik aplikacije, appModel in deploy orodja za gradnjo1.51.0
WklBarcode, WklImage; javna dokumentacija v paketu izdaje1.52.0
Dodelitve priročnih menijev v WklRibbon (ShowAssignments, ApplyAssignments, EnsureMenus), vgrajeni ukazi prek idMso1.53.0
Uporabniški vmesnik v angleščini, nemščini, slovenščini, hrvaščini in italijanščini; jezik za posamezno aplikacijo (language v modelu aplikacije)1.54.0
Okna, širša od 22 palcev: WklDockLayout s sidri iz načrta, kontrolniki WKL na straneh, širših od 22 palcev; lupina aplikacije zapolni široka okna1.54.1
Preverjanje zaupanja datoteke aplikacije (WklApplication.CheckTrust, TrustReport, Test-AccessTrust.ps1), WklApplication.Version in Build, INSTALL.txt v vsaki mapi izdaje orodja za gradnjo1.55.0
Bootstrapper 1.0 v paketu (bootstrapper\), tabela za krmarjenje USysWklShellNavigation predloge lupine, barvna tabela Riviera (themes\riviera.md)1.56.0
Predloga lupine: AppShell_CanClose in AppShell_Closed ob zapiranju lupine, vnosi vrstice brez strani gredo v AppShell_Command; navodilo za sledenje ne izprazni več registrskega ključa1.56.1
Besedila, ki jim sledi vrednost, v angleščini, slovenščini, hrvaščini in italijanščini ohranijo presledek; bootstrapper 2.0 in registration.json v paketu1.56.2
Datoteke in mape iz Raziskovalca, spuščene na WklGrid, WklTreeList, WklGantt in WklTreeView (AllowFileDrop, FileDragOver, FileDrop); sporočila zagonskega modula v petih jezikih1.57.0
WklActionBar.Logo (slika na levi strani pasu, AppShell_Logo() v predlogi lupine); podnaslov predloge lupine je viden; ročno napisani trakovi se prevzamejo v oblikovalnik trakov1.58.0
WklActionBar.SubtitleForeColor (lastna barva podnaslova; -1 sledi ForeColor), AppShell_SubtitleColor() v predlogi lupine1.59.0
Popravki: oznake napak v mrežah so vedno rdeče, Da/Ne v prvem stolpcu mreže kot potrditveno polje, CommandStateChange po stanju, ki ga je prebral program, tipke dosežejo podrejeno okno kontrolnika s fokusom, opozorilo orodja za gradnjo, ko sklic zabeleži novejšo različico od navedene1.59.1
Popravki: CommandStateChange tudi za mrežo brez lastnega okna (v območju WklDockLayout v skritem okolju Runtime); dokumentacija, razvrščena po vrstah komponent1.59.2
WklTimerList (zakasnjene in periodične naloge, čakalna vrsta spletnih zahtev v nadzorovanem tempu), WklChart1.60.0
Pravilo oblikovanja wrkColorScale (toplotni zemljevid); WklChart in merilniki v poročilih s PrintStyle; predloga lupine kot projekt SDK; popravki: vrstni red skupin v WklTreeList pri razvrščanju po drevesnem stolpcu, položaj vnosov na zaslonu v pogledu seznama WklGrid1.62.0
WklMap; popravek: sledenje COM ne zapisuje več vrednosti polj1.63.0
Filtriranje stolpcev v WklTreeList in WklGantt (vrstica filtra, seznam vrednosti v glavi stolpca, vrstica filtrov, FilterIncludesChildren); popravek: WklGrid.ColumnFilterValues z več vrednostmi1.64.0
Popravek: Access se ne zruši več nekaj minut po tem, ko VBA v pogledu obrazca spremeni bližnjično tipko kontrolnika WklButton ali WklActionBar1.64.1
WklTexts (besedila aplikacije po ključu v jeziku komponent, standardna besedila wkl.*, jezik za preskusno sejo)1.65.0
Napisi s ključem (@orders.title) v kontrolnikih WKL in modelu traku; WklTexts.Localize za obrazce in poročila, WklTexts.CaptionText1.66.0
Nevtralna besedila, besedila aplikacije v poljubnih jezikih, jezikovna mapa i18n (WklTexts.Folder, tudi za Excel in Word)1.67.0
Popravki: WklDockLayout ne prekrije več sosednjih območij, kadar območje potrebuje več prostora, kot ga ima okno; z FillSection Access v tem primeru ne ostane več zaseden1.67.2
Popravki: WklDockLayout razširi tudi obrazec, prikazan v kontrolniku podobrazca, kadar območje potrebuje več prostora, kot ga ima okno; paket vsebuje gradnik kontrolnika WklMap1.67.3
WklMap: izsek sveta (Extent, VisibleExtent), povečava in premikanje, ki ju izvaja uporabnik (AllowZoom, ExtentChanged), natančnejše meje za regijo, lastno barvno polje (ColorField, ColorRange, ColorFormat); popravek: WklTexts in drugi predmeti, ustvarjeni s CreateObject, najdejo Access tudi med odpiranjem začetnega obrazca1.68.1
Popravki: Ctrl+C, Ctrl+X, Ctrl+V in Ctrl+Z delujejo v urejevalnikih celic kontrolnikov WklGrid, WklTreeList in WklPropertyGrid ter v drugih besedilnih poljih kontrolnikov; Ctrl+C na celici kopira celico ali izbor; spustni seznam se odpre samo pod svojo celico1.68.2
WKL Access Components se zdaj imenuje WKL Forms Object Library (sklic WKL Forms 1.68 Object Library; ProgID-ji, datoteke in knjižnica tipov so nespremenjeni); kontrolniki to ime sporočajo kot ime aplikacije (OLEClass); orodja dodatka z angleškimi imeni; sporočila, pregledana za njihove bralce1.68.3
Glavna različica 2: knjižnica se imenuje WklForms (sklic WKL Forms 2.0 Object Library, ProgID-ji WklForms.*, zagonski modul Wkl.Forms.ObjectLibrary.dll); ID-ji razredov in člani iz 1.68 so nespremenjeni; registracija izdaje 2.0 odstrani 1.x (Prehod aplikacije na izdajo 2.0)2.0.0

Katera različica je registrirana. Za vsako bitno različico je hkrati registrirana le ena različica: ko registrirate izdajo, se za tega uporabnika odstrani registracija vseh drugih različic knjižnice, zato podatkovna zbirka nikoli ne uporabi starejše kopije. Registrirano različico ugotovite takole:

  • V urejevalniku VBA Orodja › Sklici prikaže WKL Forms x.y Object Library za podatkovno zbirko, ki uporablja kontrolnike.
  • V VBA:

    Dim r As Reference
    For Each r In References
        If r.Guid = "{A37D549E-FCD0-48EC-8B14-C7323B747E4F}" Then Debug.Print r.Major & "." & r.Minor, r.FullPath
    Next
  • Komponente same navedejo svojo izdajo: WklApplication.Version jo vrne (1.55.0), WklApplication.Build pa izdajo, znak plus in celoten identifikator commita (potrditve sprememb) izvorne kode (1.55.0+ce4b826c...). V poročilu o napaki navedite Build.
  • V lastnostih datoteke (Podrobnosti) Wkl.Forms.ObjectLibrary.dll kaže izdajo kot različico datoteke in izdelka, Wkl.Forms.ObjectLibrary.Managed.dll pa izdajo z identifikatorjem commita kot različico izdelka. Gradnja iz izvorne kode, ki ni bila potrjena v commitu, nima oznake; paket izdaje je vedno zgrajen iz commita, ki ga navaja njegova oznaka (tag).

Zagotovilo združljivosti. Ko je izdaja objavljena, se člani z DISPID-ji in razredi z GUID-i nikoli več ne spremenijo in ne odstranijo; nove izdaje samo dodajajo, vsak dodatek pa zviša različico knjižnice tipov. Obrazci hranijo nastavitve svojih kontrolnikov WKL v obrazcu (OleData), novejša izdaja pa prebere nastavitve, ki jih je shranila starejša; nastavitve, ki jih doda novejša izdaja, imajo v obrazcih iz starejše izdaje privzeto vrednost. Izdaja s popravki (z) ne spremeni nobenega člana.

Podatkovna zbirka s sklicem na starejšo različico deluje tudi z novejšo registracijo iste glavne različice: Access ob odpiranju podatkovne zbirke sklic razreši na registrirano knjižnico. Z izdajo 2.0 se začne nova glavna različica z imenom knjižnice WklForms; podatkovno zbirko, zgrajeno z izdajo 1.x, je treba enkrat prenesti (Prehod aplikacije na izdajo 2.0). Preden podatkovna zbirka uporabi člane novejše izdaje, jo znova prevedite (Razhrošči › Prevedi) in izdelajte novo datoteko ACCDE. V nasprotni smeri to ne deluje: podatkovna zbirka, zgrajena z novejšo izdajo, se s starejšo registracijo ne izvaja – sklic je prekinjen (MISSING), Access pa javi napako 459 ali „Object library not registered“. Najprej namestite komponente, šele nato podatkovno zbirko (Uvajanje aplikacije s kontrolniki WKL v računalnike uporabnikov). Pri obrazcih UserForm v Excelu in Wordu je drugače: Office od prve uporabe dalje hrani kopijo knjižnice za vsako različico, zato vsaka sprememba vmesnika zviša različico.

Glavna različica 2.0. Razrešitev sklica na novejšo registracijo je zagotovljena le znotraj njegove glavne različice. Access sicer prek istega ID-ja knjižnice poveže sklic podatkovne zbirke za izdajo 1.x tudi z izdajo 2.0, vendar ProgID-ji WklComponents.* takrat niso več registrirani. Izdaja 2.0 je preimenovala knjižnico iz WklComponents v WklForms, ProgID-je iz WklComponents.* v WklForms.* in zagonski modul v Wkl.Forms.ObjectLibrary.dll. Člani, DISPID-ji in GUID-i so enaki kot v izdaji 1.68, obrazci pa obdržijo svoje kontrolnike. Aplikacijo za izdajo 1.x enkrat prenesete (Prehod aplikacije na izdajo 2.0).

Podprta okolja

Podpora po kontrolnikih, vse v programu Access iz Microsoft 365:

Kontrolnik ali objektACCDBACCDEAccess RuntimeObrazci UserForm v Excelu in Wordu
WklTreeView, WklTreeListPodprtoPodprtoPodprtoOsnovna uporaba
WklGantt, WklGridPodprtoPodprtoPodprtoOsnovna uporaba
WklSplitter, WklDockLayoutPodprtoPodprtoPodprtoOsnovna uporaba
WklStatusLabel, WklNavBar, WklButtonPodprtoPodprtoPodprtoOsnovna uporaba
WklToggleSwitch, WklTokenBox, WklBadge, WklToastPodprtoPodprtoPodprtoOsnovna uporaba
WklValidatorPodprtoPodprtoPodprtoNi podprto (preverja Accessove obrazce)
WklLinkManagerPodprtoPodprtoPodprtoNi podprto (povezuje tabele Access)
WklPropertyGridPodprtoPodprtoPodprtoOsnovna uporaba
WklButtonEdit, WklSpinEditPodprtoPodprtoPodprtoOsnovna uporaba
WklGauge, WklKpiCardPodprtoPodprtoPodprtoOsnovna uporaba
WklActionBarPodprtoPodprtoPodprtoOsnovna uporaba
WklDrawerPodprtoPodprtoPodprtoNi podprto (postavi kontrolnik podobrazca Access)
WklRibbon (vključno z dodelitvami priročnih menijev)PodprtoPodprtoPodprtoNi podprto (trakovi Access)
WklNavPanePodprtoPodprtoPodprto (zapiše vrstice; okolje Runtime ne prikaže podokna za krmarjenje)Ni podprto (podokno za krmarjenje Access)
Predloga lupine aplikacijePodprtoPodprtoPodprtoNi podprto (Accessovi obrazci)
WklApplicationPodprtoPodprtoPodprtoNi podprto (zagonske lastnosti Access)
WklBarcode, WklImage (tudi v poročilih: predogled tiskanja in PDF)PodprtoPodprtoPodprtoOsnovna uporaba
WklTimerListPodprtoPodprtoPodprtoOsnovna uporaba
WklChartPodprtoPodprtoPodprtoOsnovna uporaba (brez podatkov: bere jih prek programa Access)

„Osnovna uporaba“ pri obrazcih UserForm v Excelu in Wordu pomeni: kontrolnik je mogoče vstaviti na obrazec UserForm, ga vezati na njegove podatke, uporabljati iz VBA in shraniti z obrazcem UserForm; druga uporaba na obrazcih UserForm ni podprta.

Urejanje in shranjevanje: predpogoji

WklTreeView, WklTreeList, WklGantt in WklGrid uporabnikovo spremembo – preimenovanje, premik, celico, kljukico, nov, kopiran ali izbrisan zapis – takoj zapišejo v RecordSource (AutoSave = True, privzeto). Ali to lahko uspe, je odvisno od vira zapisov.

  • Vir zapisov mora biti v Accessu posodobljiv – preizkusite, ali lahko v njegovem podatkovnem listu spremenite vrednost. Tabela, izbirna poizvedba nad eno tabelo in besedilo SQL kot RecordSource shranjevanje omogočajo; poizvedba UNION, poizvedba z GROUP BY, prepustna poizvedba in povezana tabela ODBC brez enoličnega indeksa pa zavrnejo zapis z napako wkeSourceError (&H80040302): „Spremembe (Preimenovanje) vozlišča 2 ni bilo mogoče shraniti v „qUnion“: …“, nato sledi sporočilo programa Access, da posodobitev ni mogoča, ker je podatkovna zbirka ali objekt samo za branje. Nič se ne shrani, vozlišče pa obdrži besedilo iz vira.
  • Polja, v katera vir ne more pisati, ne odprejo urejevalnika (WklGrid, WklTreeList, WklGantt, WklPropertyGrid): pri AutoSave = True seznam vir enkrat preveri – DAO-jeva Updatable in DataUpdatable, polja s samoštevilom, pri povezani tabeli ODBC pa gonilnik (stolpci IDENTITY, izračunani stolpci in stolpci rowversion). Take celice se vedejo kot ReadOnly. Pri AutoSave = False se nič ne izklopi, ker spremembo zapiše aplikacija sama. Dodajanje, brisanje, preimenovanje v WklTreeView in vlečenje ostanejo vklopljeni: zavrnitev se pokaže šele ob shranjevanju spremembe. Pri uporabnikovi spremembi se transakcija razveljavi, drevo se znova naloži, sproži se DataError z zgornjim besedilom, nato pa se prikaže okno s sporočilom, razen če DataError nastavi Response na acDataErrContinue (0). Pri viru, ki ga ni mogoče posodabljati, urejanje izklopite: AllowEditing = False (LabelEdit = False v WklTreeView), AllowAdditions = False, AllowDeletions = False in brez vlečenja in spuščanja.
  • KeyField mora enolično določati en zapis. Zapis se poišče po ključu: pri tabeli ali poizvedbi v SQL (SELECT * FROM [source] WHERE [key] = …), pri besedilu SQL s FindFirst v naboru dynaset. Ključ, ki se pojavi dvakrat, zavrne zapis z wkeDuplicateKey (&H80040303): „Ključ 2 se v viru podatkov pojavi več kot enkrat. KeyField mora vsak zapis enolično označiti.“; nič se ne shrani. Sestavljeni ključ je KeyField = "OrderID;LineNo"; njegova polja gredo v isti pogoj z AND.
  • Povezane tabele ODBC (SQL Server, Wkl OData) potrebujejo v programu Access enoličen indeks, ki ga Access ob povezovanju tabele prevzame iz primarnega ključa. Povezana tabela SQL Server s primarnim ključem shranjuje; ista tabela brez kakršnega koli indeksa je samo za branje in zavrne zapis kot zgoraj. Kontrolnik odpre svoj nabor dynaset z dbSeeChanges, kar zahtevajo tabele SQL Server s stolpcem IDENTITY. Prek gonilnika Wkl OData potrebuje tabela za pisanje tudi različico vrstice, ne glede na vrsto ključa. Brez nje Access poišče zapis tako, da primerja vse stare vrednosti (UPDATE … WHERE Id = ? AND Name = ?). Storitev takšne primerjave za tabelo s ključem ne ponuja, gonilnik pa je tudi ne opusti. Zapis se zavrne z wkeSourceError: „[Wkl][OData]Die Bedingung auf 'Name' laesst sich nicht uebersetzen; … ein Vergleich mit dem alten Wert wird von diesem Dienst nicht angeboten.“ Rešitev: tabeli dodajte stolpec rowversion ali pa za tabelo vklopite žig vrstice v storitvi (glejte dokumentacijo storitve). Nato tabelo znova povežite.
  • Ena transakcija, eno mesto. Vsa pisanja enega uporabnikovega dejanja potekajo v transakciji privzetega delovnega prostora DAO, vključno z urejevalnikom celic v WklTreeList (BeforeUpdate z Action = wuaCellValue). Cancel v BeforeUpdate ali zavrnitev programa Access razveljavi celotno dejanje in znova naloži drevo. Pisanja, ki jih vaša koda izvede prek CurrentDb znotraj BeforeUpdate, spadajo v isti delovni prostor in se razveljavijo skupaj z njim. Cancel v ValidateCell pride pred vsakim pisanjem: urejevalnik se zapre, celica pa obdrži staro vrednost.
  • En vir zapisov za vsa vozlišča. Drevesa, katerega vrste vozlišč prihajajo iz več tabel prek poizvedbe UNION, ni mogoče urejati neposredno v drevesu; preslikave vrste vozlišča v tabelo ni. Takšno drevo urejajte prek obrazcev: EditForms za izbrano vozlišče odpre Accessov obrazec njegove vrste (sourceKeys navaja ključ zapisa za njim, deleteFrom tabelo, iz katere se briše; glejte Urejanje zapisov v Accessovem obrazcu). Lahko pa nastavite AutoSave = False in spremembo shranite sami: drevo tedaj spremeni le prikaz, ne sproži BeforeUpdate, vaša obravnava ValidateCell, AfterLabelEdit, NodeDrop ali BeforeDelete pa zapiše zapis po ključu; če vaše pisanje ne uspe, tam nastavite Cancel.

Omejitve in znane težave

Zaupanje. Kontrolniki se registrirajo kot varni za skriptno izvajanje in inicializacijo, čeprav člani zapisujejo datoteke (SaveToFile, Export…, SaveImage), odpirajo datoteke (AutoStart) in berejo datoteke, navedene v shranjenih lastnostih (WklImage, tudi iz omrežne skupne rabe). Uporabljajte jih samo v podatkovnih zbirkah iz zaupanja vrednih mest.

Kam na obrazec lahko postavite kontrolnik (stran posamezne komponente navaja njeno rešitev):

MestoKaj se zgodiRešitev
Odsek s podrobnostmi neprekinjenega obrazca, nevezanAccess ustvari en primerek, ki prikazuje samo trenutni zapis; druge vrstice ostanejo prazneStolpec v WklGrid (stanje, stikalo, žetoni, ukazi)
Odsek s podrobnostmi neprekinjenega obrazca, vezan (vir kontrolnika)Access obrazca ne odpre do koncaKot zgoraj; v glavi ali nogi obrazca vezan kontrolnik deluje
Za podobrazcem ali na njemAccess izriše podobrazec čez vsak kontrolnik ActiveX (tudi čez WklBadge)Kontrolnik postavite ob podobrazec ali v lastni obrazec podobrazca
PoročiloObvestilo namesto podatkovRavni združevanja in podporočila; izvoz seznama
Onemogočen (Omogočeno = Ne)Access onemogočenemu kontrolniku ActiveX ne dodeli okna; izriše se kot slika in se ne odziva na miško in tipke–
  • Poročila: na poročilu seznami (WklTreeView, WklTreeList, WklGantt, WklGrid, WklPropertyGrid) namesto podatkov prikažejo obvestilo; WklBarcode in WklImage sta narejena za poročila (vezan kontrolnik izriše vrednost vsakega zapisa v predogledu tiskanja in v PDF); drugi kontrolniki na poročilih niso podprti. Hierarhična poročila zgradite z ravnmi združevanja in podporočili; pogled seznama prenesete ven z njegovim izvozom.
  • Podprto: 32- in 64-bitni Access. Moduli VBA, ki jih zapišejo komponente (basWklRibbon, modul orodja za gradnjo, dodatek), ne deklarirajo funkcij API, zato ni treba prilagajati nobenega PtrSafe.
  • Nastavitve za visok DPI niso podprte.
  • Vlečenje in spuščanje deluje samo znotraj istega kontrolnika: vozlišča v WklTreeView, WklTreeList in WklGantt se premikajo ali kopirajo znotraj lastnega drevesa; vrstic v WklGrid ni mogoče vleči (sprejema samo datoteke iz Raziskovalca). Vlečenje zapisov iz enega kontrolnika na drugega – na primer številnih izbranih oseb na pravilo v drugem seznamu – ni mogoče. Rešitev: uporabnik izbira z MultiSelect, vi preberete SelectedKeys in dodelitev izvedete z ukazom (WklButton, ukaz priročnega menija ali RowCommand); ključ cilja vzamete iz SelectedKey drugega kontrolnika. Pri kopiranju vozlišč se polja s prilogami in polja z več vrednostmi ne kopirajo.
  • AutoSave piše samo v RecordSource, ki ga Access lahko posodablja, s KeyField, ki enolično določa en zapis; poizvedba UNION, poizvedba z GROUP BY ali prepustna poizvedba ter povezana tabela brez enoličnega indeksa zavrnejo zapis ob shranjevanju spremembe, ne prej. Preslikave vrste vozlišča v tabelo ni. Drevo, naloženo iz Recordset ali iz datoteke, nima vira, v katerega bi lahko pisalo nazaj. Glejte Urejanje in shranjevanje: predpogoji.
  • Filter vezanega kontrolnika je pogoj WHERE vira podatkov in po viru poizveduje vsakič znova; pri prepustni poizvedbi se na strežniku izvede celotna poizvedba.
  • Access okna kontrolnika ActiveX v UI Automation ne navaja kot podrejenega elementa njegovega obrazca. Bralniki zaslona dosežejo mrežo prek fokusa; iskanje po drevesu elementov programa Access je ne najde.
  • NodeFormat in CellFormat se sprožita samo pri FormatEvents = True. Vsak klic dogodka v Access traja nekaj milisekund, ki se seštejejo za vsako vidno vozlišče ali celico ob vsakem ponovnem izrisu.
  • Izvoz: XLSX, XML in JSON; WklGantt zapisuje tudi slike, PDF in Microsoft Project XML. Druge oblike (XLS, CSV …) niso del kontrolnikov: datoteko XLSX odprite v Excelu in jo shranite v želeni obliki, ročno ali z nekaj vrsticami VBA. Izvoz v Excel v prikazani obliki izpusti podatkovne vrstice in nabore ikon, pri WklGantt pa puščice odvisnosti, osnovne načrte in roke (nimajo oblike celice).
  • WklGantt: besedilo v PDF je del slike in ga ni mogoče iskati. Microsoft Project XML sledi shemi Project 2007: ročno razporejanje, vrzeli razdeljenih opravil in videz grafikona se ne izmenjujejo. Datoteke Project sledijo Microsoftovi objavljeni shemi in obliki datotek Project 2010; odpiranje v samem programu Microsoft Project ni podprto.

Licenciranje

Kontrolniki in objekti ne vsebujejo preverjanja licence: ni licenčnega ključa, ni preverjanja v pogledu načrta in ne med izvajanjem, tudi ne v okolju Access Runtime ali na obrazcih UserForm v Excelu in Wordu. Podatkovna zbirka, ki jih uporablja, deluje v vsakem računalniku, v katerem je izdaja nameščena in registrirana (Uvajanje aplikacije s kontrolniki WKL v računalnike uporabnikov). Pogoji uporabe so tisti iz vaše pogodbe z dobaviteljem.

sl/wiki/msaccess/comctl/overview.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille