Ansicht speichern und wiederherstellen
Behalten Sie die aufgeklappten Knoten und die Auswahl zwischen Sitzungen pro Benutzer bei, oder speichern Sie eine ganze Struktur einschließlich ihrer Knoten.
Voraussetzungen: WKL Forms Object Library 1.23 oder höher.
Lösungsüberblick
Layout gibt den Ansichtszustand (aufgeklappte Knoten, Auswahl) als Text ohne die Knoten zurück; eine Zuweisung
stellt die Ansicht wieder her. SaveToFile, SaveToString, SaveToStream und AsJSON speichern die Knoten
zusammen mit ihrem Zustand (aufgeklappt, ausgewählt, mit Häkchen) als JSON oder XML; die passenden LoadFrom…-Member
laden sie wieder.
Umsetzung
Merken Sie sich die Ansicht pro Benutzer in einer Tabelle tblAnsichtszustand (Benutzer TEXT, Formular TEXT, Layout MEMO):
Private Sub Form_Close()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM tblAnsichtszustand WHERE Benutzer = '" & Environ$("USERNAME") & "' AND Formular = '" & Me.Name & "'")
If rs.EOF Then rs.AddNew Else rs.Edit
rs!Benutzer = Environ$("USERNAME"): rs!Formular = Me.Name
rs!Layout = Me!Tree1.Object.Layout
rs.Update
End Sub
Private Sub Form_Load()
Dim saved As Variant
saved = DLookup("Layout", "tblAnsichtszustand", "Benutzer = '" & Environ$("USERNAME") & "' AND Formular = '" & Me.Name & "'")
If Not IsNull(saved) Then Me!Tree1.Object.Layout = saved
End Sub
Speichern Sie eine vollständige Struktur in einer Datei, und laden Sie sie in eine ungebundene Struktur:
Me!Tree1.Object.SaveToFile CurrentProject.Path & "\regionen.json" ' in another form, a WklTreeView without RecordSource: Me!Tree2.Object.LoadFromFile CurrentProject.Path & "\regionen.json"
Hinweise
LoadFromFilein eine Struktur mitRecordSourceüberträgt nur den Zustand (aufgeklappt, Auswahl, Häkchen) auf die Knoten der Datenherkunft. OhneRecordSourcelegt es aus den Knoten der Datei eine ungebundene Struktur an.- Werte behalten ihren VBA-Datentyp und werden unabhängig von den Regionaleinstellungen geschrieben. Die Schlüssel stimmen daher nach dem Laden wieder mit der Datenbank überein.
wffAutoschreibt für eine Datei mit der Endung.xmlXML, sonst JSON. Beim Laden erkennt es das Format am Inhalt.AsJSONgibt einJDocvon WKL Office JSON zurück; WKL Office JSON muss dazu registriert sein.- Eine aus einer Datei geladene Struktur schreibt Änderungen nicht zurück, auch nicht mit
AutoSave.