Das Konzept von virtuellen Tabellen, auch temporäre Tabellen genannt, ist nicht neu in FileMaker. Trotzdem werden virtuelle Tabellen nur sehr selten in Datenbankprojekten eingesetzt. Dabei können sie verschiedene Vorgänge vereinfachen.
In dieser Session wird das Konzept der virtuellen Tabellen vorgestellt, der Aufbau dieser Tabellen erklärt und zwei Anwendungsmöglichkeiten vorgestellt:
• Daten aus verschiedenen Quellen (nicht unbedingt Tabellen) gemeinsam in einem Portal darstellen
• Vereinfachter Import aus Excel-Dateien
Das Konzept der virtuellen Tabellen geht über die traditionellen Denkweisen mit FileMaker Tabellen hinaus. Ähnlich wie bei MagicValueLists (meinem Vortrag auf der FMK 2014) werden die Möglichkeiten in FileMaker für den Entwickler und Anwender erweitert, alles mit in FileMaker vorhandenen Objekten.
Das Thema ist daher nicht für FileMaker Einsteiger geeignet. Fortgeschrittene Entwickler sollten schon mit SQL-Abfragen programmiert und sich mit MagicValueLists oder ähnlichen Konzepten beschäftigt haben.
Die Session wird als Workshop angeboten. Die Teilnehmer sollten ihre Rechner mitbringen.
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
FMK2015: Virtuelle Tabellen by Arnold Kegebein
1. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Virtuelle Tabellen
Dipl.-Ing. (FH) Arnold Kegebein
2. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Zur Person
Dipl.-Ing. (FH) Arnold Kegebein
Studium der Technischen Informatik
Mehrere Jahre als IT-Leiter in Chicago, IL (USA)
Über 30 Jahre Erfahrung mit Datenbanksystemen
dBase, Oracle, MySql, MS Access, FileMaker, …
Seit 2007 Entwickler von FileMaker Lösungen
Autor des FileMaker Magazins
Referent auf FileMaker Konferenzen
3. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Zum Vortrag
Theorie
• Was sind Virtuelle Tabellen?
• Wofür können Virtuelle Tabellen verwendet werden?
• Wie funktionieren Virtuelle Tabellen?
• Grenzen der Virtuellen Tabellen
Praxis
•Virtuelle Tabelle anlegen
• Scripts programmieren
• Interface aufbauen
•Testen und Beispiele
5. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Was sind Virtuelle Tabellen?
Im Bereich von Datenbanken ein Synonym für eine Sicht auf Tabellendaten
„ Eine Sicht (englisch, SQL: View) ist eine logische Relation (auch virtuelle
Relation oder virtuelle Tabelle) in einem Datenbanksystem. Diese logische
Relation wird über eine im Datenbankmanagementsystem (DBMS)
gespeicherte Abfrage definiert.
Der Datenbankbenutzer kann eine Sicht wie eine normale Tabelle abfragen.
Wann immer eine Abfrage diese Sicht benutzt, wird diese zuvor durch das
Datenbankmanagementsystem berechnet. Eine Sicht stellt im Wesentlichen
einen Alias für eine Abfrage dar.“
Wikipedia – https://de.wikipedia.org/wiki/Sicht_(Datenbank)
6. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Was sind Virtuelle Tabellen?
Im FileMaker-Umfeld passt die vorherige Definition nur zum Teil.
Neuer Versuch einer Definition
Eine Datenhalde wird in Felder und Datensätze aufgebrochen, auf
die wie mit einer normalen Tabelle lesend zugegriffen werden kann.
Begriffserklärung: Datenhalde
Ein Textblock, der Tabellendaten in geordneter Form enthält.
Spezielle Zeichen werden als Feld- und Datensatztrenner verwendet.
7. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Wofür können sie verwendet werden?
• Das Ergebnis der Funktion SQLAbfragen als Tabelle anzeigen
• Excel-Daten importieren
• CSV-Dateien importieren
• Datensätze aus verschiedenen Tabellen zusammen darstellen
• Detaildaten und Verdichtung (Gruppierung) zusammen im Portal anzeigen
• …
8. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Wofür können sie verwendet werden?
FileMaker Funktion SQLAusführen
SQLAusführen ( sqlAbfrage ; Feldtrennzeichen ; Zeilentrennzeichen { ; Argumente... } )
• Eine Virtuelle Tabelle kann das SQL-Ergebnis als Tabelle anzeigen
• Das Ergebnis der Funktion SQLAusführen ist ein Textblock
• Es werden Zeichen als Feld- und Datensatztrenner definiert
9. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Wofür können sie verwendet werden?
Excel mit Copy & Paste importieren
• Zellen in Excel markieren
• Daten mit Copy & Paste oder Drag & Drop kopieren
• Die Daten werden in der Virtuellen Tabelle (fast) wie in Excel angezeigt
• Einfache Formate (Fett, Kursiv, …) bleiben erhalten
• Andere Schrift- und Zellformatierungen werden nicht übernommen
• In der Zwischenablage werden die Zellen als ein Textblock abgelegt
• Es werden bestimmte Zeichen für Feldtrenner (⇥) und Zeilentrenner (¶)
verwendet
10. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Wie funktionieren Virtuelle Tabellen?
KdNr|Name|Straße|PLZ|Ort
4711|Arnold Kegebein|Kü…
5555|K&K Verlag|Große …
6666|FileMaker GmbH|…
KdNr|Name|Straße|PLZ|Ort
4711|Arnold Kegebein|Kü…
5555|K&K Verlag|Große …
6666|FileMaker GmbH|…
5555
KdNr Name Straße PLZ Ort
4711 Arnold Kegebein Kühnehöfe 33 22761 Hamburg
5555 K&K Verlag Große Brunn… 22763 Hamburg
6666 FileMaker GmbH München
Textdaten in Datenzeilen aufbrechen
Zeilen in Felddaten aufbrechen
Daten in Formelfelder anzeigen
K&K Verlag
Große Brunnenstraße
22763 Hamburg
11. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Wie funktionieren Virtuelle Tabellen?
Wichtige Funktionen
• Hole( DatensatzPositionInErgebnismenge )
Ermittelt die aktuelle Datensatznummer
• Hole( FormelWiederholungNr )
Ermittelt die Wiederholungsnr. eines Formelfeldes, die gerade berechnet wird
• Austauschen( Text; Suchtext; Ersatztext )
Ersetzt jedes Auftreten eines Suchtextes mit einem neuen Wert
Hier: Wandelt einen Text mit bestimmten Trennzeichen in eine Textliste um
• HoleWert( Text; Zeile )
Ermittelt aus einer Textliste eine bestimmte Zeile
12. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Wie funktionieren Virtuelle Tabellen?
• Die Daten werden in einem Textblock (Datenhalde/Data Dump) bereitgestellt
• Die Virtuelle Tabelle enthält zwei Formelfelder mit Wiederholungen:
• Kopf Formel[50] Nicht gespeichert, = Formel für Kopffelder
• Daten Formel[50] Nicht gespeichert, = Formel für Datenfelder
• Außerdem einige globale Variablen:
• $$Datenhalde – Text mit allen Daten für die Virtuelle Tabelle
• $$Kopfzeile – Flag, ob die Datenhalde eine Kopfzeile enthält
• $$Feldtrenner – Zeichen zwischen Feldern
• $$Zeilentrenner – Zeichen zwischen Datensätze
Hier zur Vereinfachung immer als Zeilenschaltung (¶) vorgegeben
• Scripts für das Interface
15. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Scripts für das Interface
• Die Virtuelle Tabelle selbst benötigt kein Script
• Scripts für die Bedienung der Virtuellen Tabelle (Interface)
• Nach Änderung der Variablen (Datenhalde, Kopfzeile, Trennzeichen) ist ein
aktualisieren des Fensters oder Portals erforderlich
• Beispiel: BeiObjektSpeichern für ein Textfeld, dass als Zielfeld für die Daten
(Drag & Drop von Excel-Daten) dient
• Script zum „Befüllen“ der Virtuellen Tabelle mit „leeren“ Datensätzen
16. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Grenzen der Virtuellen Tabellen
• Daten lassen sich in den Tabellenfeldern nicht editieren
• Virtuelle Tabellen können nicht sortiert werden
• Ausweg: Datenhalde sortieren
Kompliziert, wenn nicht nach der ersten Spalte sortiert werden soll
• Einzelne Datensätze können nicht ausgeschlossen werden
• Virtuelle Tabellen in mehreren Fenstern verlieren den Kontext
• Ausweg: Mehrere Virtuelle Tabellen definieren
• Erfordert jeweils nur zwei weitere Formelfelder (Kopf, Datenfelder)
• Funktioniert nicht, wenn zwei Fenster das gleiche Layout zeigen
• Wegen ungespeicherter Formelfelder nur für kleinere Datenmengen geeignet
18. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Eine Virtuelle Tabelle anlegen
Tabelle: VT
Felder: Kopf Formel[20] Nicht gespeichert, = Formel für Kopffelder
Daten Formel[20] Nicht gespeichert, = Formel für Datenfelder
• Die Anzahl der Wiederholungen begrenzt, wieviele Spalten angezeigt werden
• Die Datenhalde kann trotzdem mehr Spalten enthalten
21. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Layout anlegen
Layoutname:Virtuelle Tabelle
Layouttabelle: VT
Ansicht: als Liste
Kopfbereich: Feld VT::Kopf[1…20], horizontale Wiederholungen,
kein Label
Datenbereich: Feld VT::Daten[1…20], horizontale Wiederholungen,
kein Label
22. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Scripts anlegen
Script VT | Initialisieren
Lädt die Daten und definiert die Parameter Trennzeichen und Kopfzeile
Script VT | Daten laden
Lädt nur die Daten
Script VT | Parameter einstellen
Definiert nur die Parameter Trennzeichen und Kopfzeile
Script VT | Datensätze anlegen
Sorgt dafür, dass die Virtuelle Tabelle genügend Datensätze enthält, um alle
Zeilen aus der Datenhalde anzeigen zu können
24. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Andere Scripts
Die Programmierung der anderen Scripts sprengt den Rahmen des Workshops
Warum Scripts VT | Daten laden und VT | Parameter einstellen?
• Nicht immer sollen alle Werte geändert werden
Warum ruft Scripts VT | Initialisieren nicht die beiden Scripts nacheinander auf?
• Am Ende jedes Scripts wird das Fenster oder Portal aktualisiert, um eine
Neuberechnung der Tabellenfelder zu gewährleisten
• Dies sollte aus Gründen der Performanz vermieden werden
Empfehlung für Script VT | Datensätze anlegen
• Datensätze nur hinzufügen, nicht ständig löschen
• Maximale Anzahl der Datensätze beschränken
26. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Interface aufbauen
• Ein Interface ermöglicht dem Anwender, die Virtuelle Tabelle zu konfigurieren
• Über globale Felder kann er Daten übergeben und die Parameter einstellen
• Trigger entbinden den Anwender, selbst ein Script starten zu müssen
27. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Interface aufbauen
Tabelle: VT
Felder: g_Daten global, Text
g_Feldtrenner global, Text
g_mitKopf global, Zahl (Boolean)
Im Layout Virtuelle Tabelle den Kopfbereich erweitern und Objekte anlegen
• g_Daten und g_Feldtrenner als Bearbeitungsfeld
• g_mitKopf als Markierungsfeld formatieren
Für alle drei Felder:
• Option „Bei Aktivierung gesamten Feldinhalt auswählen“ einschalten
• Script-Trigger BeiObjektSpeichern definieren:
Script: VT | Initialisieren
Parameter: VT::g_Feldtrenner & ¶ & VT::g_mitKopf & ¶ & VT::g_Daten
28. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Interface aufbauen
Im Layout Virtuelle Tabelle den Kopfbereich erweitern und Objekte anlegen
• g_Daten und g_Feldtrenner als Bearbeitungsfeld
• g_mitKopf als Markierungsfeld formatieren
Für alle drei Felder:
• Option „Bei Aktivierung gesamten Feldinhalt auswählen“ einschalten
• Script-Trigger BeiObjektSpeichern definieren:
Script: VT | Initialisieren
Parameter: VT::g_Feldtrenner & ¶ & VT::g_mitKopf & ¶ & VT::g_Daten
29. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Virtuelle Tabelle testen
Daten aus Excel importieren
• Beispieldaten in einer beliebigen Exceldatei markieren und mit Copy & Paste
oder Drag & Drop im Globalfeld für die Daten einfügen
• Feldtrenner als Tab definieren
30. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Ausblicke
• Das Thema Virtuellen Tabellen ist damit längst noch nicht ausgeschöpft
• Virtuelle Tabellen können so erweitert werden, dass beliebige Zeichen für Feld-
und Zeilentrenner verwendet werden können
• Eigene Funktionen können die Arbeit mit Virtuellen Tabellen unterstützen
• Virtuelle Tabellen können zu einem vom Anwender kontrolliertem Datenimport
beitragen (nicht nur Exceldaten)
32. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Fragen & Antworten
• Jetzt
• Während der Konferenzpausen
• Per E-Mail: arnold@kegebein.net
33. Dipl.-Ing. (FH) Arnold Kegebein
Virtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburg
www.filemaker-konferenz.com
Vielen Dank unseren Sponsoren
Danke für das Bewerten dieses Vortrages