Hierarchische Datenstrukturen & K2 Smartforms

Mit dem neuen Smartforms Control Pack (Neuerungen für 4.6.9 hier) gibt es u.a. ein TreeView Control. Damit lassen sich Datenstrukturen als Baum darstellen – grundsätzlich spielt es dabei (wie immer bei K2) keine Rolle, ob diese Daten in einer SQL DB, SharePoint Liste oder sonstigen Quellen vorgehalten werden.

In einem kleinen Beispiel nutze ich eine SharePoint Bibliothek zur Dokumentenablage und ergänze diese Dokumente mit einer Kategorie (unten teilweise “QM Folder” genannt). Die Kategorie selbst dient als Container für verschiedene Informationen, wie zum Beispiel:

– wer muss in dieser Kategorie neue Dokumente prüfen und genehmigen

– wer muss informiert werden, falls sich an den Dokumenteninnerhalb dieser Kategorie sich etwas ändert

Falls dann eine neue Freigabe angestoßen wird oder Leser über neue Dokumente informiert werden müssen, greift ein K2 Workflow diese Informationen ab und verteilt entsprechend die Aufgaben. Aufgrund der entkoppelten Architektur von Views, Daten und Workflows ist es zum Beispiel denkbar, eine Art Dashboard zu bauen.

treeview1

 

Die Datenbasis für die Hierarchie ist ein einfaches K2 Smartbox Object mit einem “Fremdschlüssel” auf sich selbst, womit die übergeordnete Kategorie definiert wird. Den Rest erledigt das TreeView Control automatisch.

treeviewsmo

Um das Objekt dann an das TreeView Control zu binden, muss man letztlich nur auf die Datenquelle in den Eigenschaften klicken und nach ein paar Klicks sieht das Ergebnis dann so aus:

treeviewconfig

Wer genau hinschaut, erkennt dass an den Knoten auch ein Icon platziert werden kann. Wie konfiguriert man das Icon-Mapping? Glücklicherweise ist dies auch ohne größeren Aufwand machbar, denn dafür gibt es “out of the box” ein Smartobject (theoretisch kann man auch ein eigenes Objekt dafür erstellen)

treeviewicon

Über die IconID an der Kategorie findet dann zur Laufzeit das Mapping statt. Man sieht oben bei den Category Details auch dass diese Eigenschaft via Dropdown Control gesetzt werden kann.

Wie kann man neue, eigene Icons ergänzen oder verändern? Zum Beispiel über eine ListView.

treeviewiconlistview

Diese hierarchischen Daten lassen sich natürlich auch an alle anderen Controls binden. Zum Beispiel an das K2 AutoComplete Control auf einem SharePoint Formular.

treeviewautocomplete

Alles wie immer #nocode ! 😉

Buffer this pageShare on LinkedInShare on FacebookTweet about this on TwitterEmail this to someone