Barvna shema: Temna
Trenutno dejavna stran: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Uporabniško urejanje drevesa

Uporabniško urejanje drevesa

Uporabnikom omogočite, da vozlišča preimenujejo, dodajajo, brišejo, premikajo in kopirajo, vi pa vsako spremembo preverite, preden se zapiše v vir podatkov.

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

Pregled rešitve

Operacije vklopijo štiri lastnosti: LabelEdit (preimenovanje), AllowAdditions (dodajanje), AllowDeletions (brisanje) in AllowDragDrop (premikanje in kopiranje). Vse so privzeto izklopljene, ker spreminjajo podatke. Z AutoSave = True (privzeto) se vsaka operacija zapiše v eni transakciji; BeforeUpdate se sproži pred vsakim zapisom in lahko prekliče celotno operacijo.

Izvedba

V listu z lastnostmi (zavihek Drugo) ali v Form_Load:

With Me!Tree1.Object
    .LabelEdit = True          ' F2 or click on the selected node
    .AllowAdditions = True     ' Insert: same level; Ctrl+Insert: below
    .AllowDeletions = True     ' Delete, with confirmation
    .AllowDragDrop = True      ' drag to move, Ctrl+drag to copy; Ctrl+X/C/V, Alt+Arrow keys
End With

Spremembe preverite v modulu obrazca:

Private Sub Tree1_BeforeUpdate(ByVal Key As Variant, ByVal Action As WklUpdateAction, Cancel As Integer)
    If Action = wuaDelete And Not CurrentUserMayDelete() Then Cancel = True   ' rolls back the whole operation
End Sub
 
Private Sub Tree1_AfterLabelEdit(ByVal Key As Variant, NewText As String, Cancel As Integer)
    NewText = Trim$(NewText)
    If Len(NewText) = 0 Then Cancel = True
End Sub
 
Private Sub Tree1_BeforeNodeAdd(ByVal ParentKey As Variant, NewKey As Variant, Text As String, Cancel As Integer)
    Text = "Nova regija"
End Sub

CurrentUserMayDelete nadomešča vaše lastno preverjanje dovoljenj.

Opombe

  • Priročni meni ponudi vsako operacijo samo, če jo dovoljuje njena lastnost.
  • Brisanje odstrani poddrevo; BeforeDelete lahko izpusti vprašanje za potrditev (Confirm = False) ali prekliče brisanje.
  • Novi ključi: samoštevilo dodeli Access. Za druga ključna polja kontrolnik predlaga ključ, ki ga lahko spremenita BeforeNodeAdd in BeforeNodeCopy: števila se nadaljujejo za najvišjim ključem, besedilni ključi dobijo pripono v jeziku uporabniškega vmesnika (A1-kopija, A1-kopija2 …), ključi GUID pa nov GUID.
  • Kopiranje ne kopira polj prilog in polj z več vrednostmi.
  • Vlečenje deluje samo znotraj istega kontrolnika.
  • V drevesu, naloženem iz nabora zapisov (Recordset) ali datoteke, spremembe vplivajo le na prikaz.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/let-users-edit-the-tree.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille