Hierarchisch sortierte (und dargestellte) Daten begegnen uns jeden Tag, zum Beispiel in Online- Foren, Budgets, Organisationsdiagrammen und vielem mehr.
Doch wie lässt sich ein in der Tiefe unbegrenzter Hierarchiebaum in FileMaker umsetzen?
Dass dies keine ganz einfache Sache ist, zeigt sich daran, dass im Forum meist unspezifisch geantwortet oder zur Vermeidung geraten wird.
Daher haben ich habe mich zusammen mit Nico Chiaro auf den Weg gemacht, die Untiefen dieses Gebietes zu ergründen.
Wir werden in der Session einen kurzen Ausflug machen über die allgemeine Daten-Funktionsweise von Hierarchien.
Dieses Minimalmodell werden wir dann beispielhaft in FileMaker umsetzen.
Wir sehen uns das Erstellen, Löschen und Verschieben von Datenpunkten und ganzen Ästen an.
Für die Etablierung weiterer Funktionalitäten im Sinne einer Vererbung von Eigenschaften zwischen den Datensätzen - zum Beispiel zur Summenbildung - werden wir klären, wann man das braucht, und wie man es umsetzen kann.
Im Weiteren werden wir noch einen Blick werfen auf die Darstellungsbeschränkungen in FileMaker, die unsere bisher unendliche Hierarchietiefe dann doch noch beschränken können, sowie einen Ausblick geben, wie man auch dies umgehen könnte.
Die Techniken für die Umsetzung einer visuell-haptischen Darstellung in FileMaker, wie zum Beispiel Drag’n’Drop, werden wir in den Grundkonzeptionen streifen, aber in dieser Session nicht umfassend erklären können.
Die Möglichkeiten und Techniken zur Umsetzung sind sehr breit gefächert und in ihrer Auswahl durch den Entwickler auch meist nicht zwingend.
Unser Ziel ist es, in der Session einen ausreichend tiefen Einblick zu geben, dass Jeder genug Ansatz- und Entscheidungspunkte zur eigenen Umsetzung mitnehmen kann.
Similar a FMK2018 Unbegrenzte Hierarchien in FileMaker Philosophie’, Grundkonstruktionen, Summierungsregeln, drag-drop Bearbeitung by Gunnar Wehrhahn (17)
Do's and Don'ts für mobile Streamsetups - Beitrag zum #ScienceVideoCamp2024 d...
FMK2018 Unbegrenzte Hierarchien in FileMaker Philosophie’, Grundkonstruktionen, Summierungsregeln, drag-drop Bearbeitung by Gunnar Wehrhahn
1. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
www.filemaker-konferenz.com
Philosophie, Grundkonstruktionen, Summierungsregeln,
Drag-Drop Bearbeitung
Version 2
Gunnar Wehrhahn
Unbegrenzte Hierarchien in FileMaker ?
2. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Über den Sprecher
• Tischler
• Diplomingenieur für Architektur
• FileMaker in „eigenen Anwendungen“ seit 2013
• 2015 in Hamburg das erste Mal auf der FileMaker Konferenz als Teilnehmer
alle
Menschen
sind
gleich
Hierarchiemerkmal
3. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Hierarchien in FileMaker von Gunnar Wehrhahn
Die Zielsetzung
• Eine einfach zu implementierende Hierarchie, auch in bestehende Datenmengen
• eine Hierarchie ohne Beschränkung in der Tiefe
• grafische Darstellung(smöglichkeiten)
• Berechnungsregeln anwenden
• Prototyp zur Weiterentwicklung in die Gemeinschaft geben
4. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Hierarchien in FileMaker von Gunnar Wehrhahn
Was ich heute mitgebracht habe
• Anwendungsfälle
• eine Benennung der Bauteile [Definitionen]
• Datenstruktur in FileMaker
• Handlungsanweisungen für:
• Knotenpunkt erstellen, löschen, verschieben
• Betrachtungen zu „regulierten Berechnungen“
• Vorstellung des Prototypen in FileMaker
• Erfüllungsgrad der Zielsetzung
• Ausblick, Verbesserungsgedanken und Fallstricke
5. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Hierarchien? - Anwendungsfälle
Aus Wikipedia.org: Hierarchie ist eine stufenmäßig auf Überordnung und
Unterordnung beruhende Ordnung,[…]. Die Ordnung eines Systems ist
erforderlich, wenn es aus mindestens zwei Elementen besteht, deren Beziehung
zueinander durch Hierarchie zu klären ist.
Anwendung:
• Teilmengen zueinander organisieren
• Gliederungen /Kapitelnummerierungen
• „Breadcrumbs“
• Datenverarbeitung „entlang von Regeln anhand der Hierarchie“
-> Budgets (z.B. nur an den Enden (Leafs) der Hierarchie dürfen Zahlen stehen)
6. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Hierarchien? - Anwendungsfälle
Aus Wikipedia.org: Hierarchie ist eine stufenmäßig auf Überordnung und
Unterordnung beruhende Ordnung,[…]. Die Ordnung eines Systems ist
erforderlich, wenn es aus mindestens zwei Elementen besteht, deren Beziehung
zueinander durch Hierarchie zu klären ist.
Anwendung:
• Teilmengen zueinander organisieren
• Gliederungen /Kapitelnummerierungen
• „Breadcrumbs“
• Datenverarbeitung „entlang von Regeln anhand der Hierarchie“
-> Budgets (z.B. nur an den Enden (Leafs) der Hierarchie dürfen Zahlen stehen)
Regeln:
• jeder
Knotenpunkt
hat
nur
ein
Parent
• es
gibt
keine
Kreisschlüsse
7. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Ein Baum und Namen
Grundlegend:
• Node
• Tree
Eigenschaften:
• (is)Root
• (is)Leaf
• Level
Mengen:
• Children
• Parent
• Siblings
• Ancestors
• Descendants
• Family
8. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Datensammlung (einen Baum erstellen)
Felder in Tabelle NODES
9. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Datensammlung (einen Baum erstellen)
Felder in Tabelle NODES
10. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Datensammlung (einen Baum erstellen)
Felder in Tabelle NODES
11. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Datensammlung (einen Baum erstellen)
• ID hier: UID mit Präfix (NODE oder TREE)
• Parent_ID (Node oder einen Baum)
Felder in Tabelle NODES
12. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Datensammlung (einen Baum erstellen)
• ID hier: UID mit Präfix (NODE oder TREE)
• Parent_ID (Node oder einen Baum)
Felder in Tabelle NODES
13. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Datensammlung (einen Baum erstellen)
• ID hier: UID mit Präfix (NODE oder TREE)
• Parent_ID (Node oder einen Baum)
• Sortkey (numerisch, fortlaufende Zahl: 1,2,3..)
Felder in Tabelle NODES
14. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Datensammlung (einen Baum erstellen)
• ID hier: UID mit Präfix (NODE oder TREE)
• Parent_ID (Node oder einen Baum)
• Sortkey (numerisch, fortlaufende Zahl: 1,2,3..)
Felder in Tabelle NODES
15. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Datensammlung (einen Baum erstellen)
• ID hier: UID mit Präfix (NODE oder TREE)
• Parent_ID (Node oder einen Baum)
• Sortkey (numerisch, fortlaufende Zahl: 1,2,3..)
• Sortkey_Tree (hier: fixe Wortbreite)
-0,0000100001 [Zahl]
oder
00001.00001 [Text]
oder ähnlich
Felder in Tabelle NODES
16. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Felddefinition in FM [Node]
17. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Felddefinition in FM [Node]
Feld Berechnung Min. Tr.
ID „NODE_“ & austauschen( hole(uuid) ; - ; _ ) x
Key_Parent - Feldwert setzen im Script - x
Sortkey_Sibling - Feldwert setzen im Script - x
Node_Level SetzeVar ( [ ~Trigger = _KEY_Parent ];
Wenn ( IstGültig ( PARENT|nodes::__IUID ) ; PARENT|nodes::_Node_Level + 1 ; 1 ))
x x
Sortkey_Tree SetzeVar ( [ ~†rigger = _KEY_Parent];
Wenn ( IstGültig ( PARENT|nodes::_SortKey_Tree ) ;
PARENT|nodes::_SortKey_Tree & ZeichenRechts ( "00000" & _SortKey_Sibling ; 5 );
"0," & ZeichenRechts ( "00000" & _SortKey_Sibling ; 5 ) ))
A x
Node_Path SetzeVar ( ~Trigger = _KEY_Parent;
Wenn ( IstGültig ( PARENT|nodes::__IUID ) ; PARENT|nodes::_Node_Path & ¶ & __IUID ;
_KEY_Parent & ¶ & __IUID ))
x x
Node_Path_Ancestors SetzeVar ( ~Trigger = _KEY_Parent;
Wenn ( IstGültig ( PARENT|nodes::__IUID ) ; PARENT|nodes::_Node_Path ; _KEY_Parent ))
A x
Node_isLeaf SetzeVar ( [ ~Trigger = _KEY_Parent ; ~Trigger = _Trigger_LeafToRoot ];
Wenn ( IstGültig ( CHILDREN|nodes_ERASE::__IUID ) ; 0 ; 1 ))
A x
Min.
=
Minimalausstattung
Tr.
=
getriggert
berechneter
Wert
x
=
ja
A=
je
nach
Anforderung
18. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Felddefinition in FM [Trees]
19. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Beispiel: Gliederung
20. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Mengenlehre (1/3)
Benennung:
Node (Fokus)
Node
21. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Mengenlehre (2/3)
22. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Mengenlehre (2/3)
23. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Mengenlehre (2/3)
24. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Mengenlehre (2/3)
insgesamt:
ein
Baum
[Tree]
25. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Mengenlehre (3/3)
Benennung:
Node (Fokus)
Parent
Children
Ancestors
Siblings
Descendants
Family
Node
26. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Beziehungsdiagramm
27. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Wozu die Mengen?
Die berechneten Werte in den Nodes (DS) müssen neu berechnet werden,
wenn sich die Hierarchie verändert und wenn ein Wert in einer Berechnung verändert
wird.
Dies sollte möglichst zielgerichtet erfolgen, nur dort wo es notwendig ist.
Es werden hier nur „berechnete Werte“, keine Formelfelder verwendet
Berechnungen vom Root zum Leaf:
• Sortkey_Tree
• Gliederungen, Breadcrumps
Berechnungen vom Leaf zum Root:
• Summierungen (mit zu bestimmenden Regeln)
Beide Richtungen:
• Checklisten
28. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Wann wird die Hierarchie verändert?
• Node erstellen
• Node (oder Ast) löschen
• Node (oder Ast) verschieben
29. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Wie wird die Neuberechnung gesteuert?
• „Feldwert ersetzen“ ist die Schlüsseltechnologie
• ersetzt wird ein Feld mit sich selber oder Feldwert XODER 1
• dieses Schlüsselfeld ist in anderen Feldern als „Triggerreferenz“ eingebaut
SetzeVar ( [ ~Trigger = _KEY_Parent ];
Wenn ( IstGültig ( PARENT|nodes::__IUID ) ; PARENT|nodes::_Node_Level + 1 ; 1 ) )
• „Feldwert ersetzen“ arbeitet nach der Sortierfolge. Daher sortieren wir
entweder bereits die Beziehung aufsteigend oder absteigend oder wir müssen
die Fundmenge entsprechend sortieren.
• Wenn über Beziehung ersetzt wird, darf nur ein DS in der Fundmenge sein.
Triggerfelder sind:
_KEY_Parent, _Trigger_LeafToRoot, _Trigger_RootToLeaf und
_Trigger_Calculation_Payload
Felddefinition
_Node_Level:
30. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Node erstellen
31. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Node löschen
32. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Node-Ast verschieben (1/4)
Nicht erlaubte Aktionen:
1. aus dem Portal ziehen
2. auf sich selbst setzen
3. anderes Bild „verschieben“
4. auf eigenen Nachkommen
Erlaubte Aktionen:
5. auf eine Node
6. neben eine Node
33. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Node-Ast verschieben (2/4)
Definition für UI_sort_handle_down:
• Containerfeld
• Berechnung ist selbst() getriggert
• setzt $$ Variablen im Fokus des
auffangenden Containers
• füllt sich wieder mit einem
„leeren“ Bild
• Fokus bleibt dabei auf dem
„geworfenen DS“
• Reassign Script startet bei „Objekt ändern“
• _graphics_g muss kein Wiederholfeld sein,
die anderen Wiederholungen sind in dem
Beispiel nicht genutzt
SetzeVar
(
[_trigger
=
Selbst
;
$$_ident_drop
=
Nodes::__IUID
;
$$_key_parent_drop
=
Nodes::_KEY_Parent
;
$$_path_drop
=
Nodes::_Node_Path
;
$$_sort_sibling_new
=
Nodes::_SortKey_Sibling
+
,5
]
;
Trees::_graphics_g
[
3
]
)
34. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Node-Ast verschieben (3/4)
35. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Node-Ast verschieben (4/4)
36. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Berechnungen durch Änderungen
• Breadcrump: Bezeichnung verändern
• Budget: Eingegebenen Wert verändert (€)
• Checkliste ankreuzen
Technik dazu:
• Scripttrigger (bei Feld Validieren)
• Wenn man mag: Wert des Feldes beim betreten merken (Script) beim Verlassen
vergleichen - verhindert Neuberechnungen, wenn der Wert sich nicht verändert
hat.
37. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Beispiel: Wert verändern
In
der
Beispieldatei
existieren
zwei
Rechenwege
in
unterschiedlichen
Feldern.
Einer
berücksichtigt
nur
Summen
an
„Leafs“,
der
andere
summiert
alle
Werte.
38. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
andere mögliche Organisationsformen
39. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
weitere Verbesserungen
• Sortierkey_Tree nach Exelisys =0,0000010000 [ 0,iiiiiidddddiiiiiiddddd ]
Beispieldatei dazu, die auch mit dem Ausblenden von Ästen arbeiten kann, Inspiration für Drag-n-Drop
https://www.excelisys.com/fm-tips/filemaker-pro-hierarchical-portal-filtering-2-3-drag-n-drop/
• weniger zu berechnende Funktionen zur Geschwindigkeitssteigerung
• Einklappen von Nodes/Descendants (Drag und Drop bei großen Bäumen)
• Mehrbenutzerlösungen: Datensatzsperre beachten / bearbeiten
• weitere Verbesserungsvorschläge?
40. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Hierarchien in FileMaker von Gunnar Wehrhahn
Fragen und Antworten
41. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Vortrag und Sprecher
Vielen Dank unseren Sponsoren
Danke für das Bewerten dieses Vortrages