Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Virtuelle TabellenDipl.-Ing. (FH) Arnold Kegebein
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Theorie
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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 virtuelleRelation 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)
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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.
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
• …
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Formel für Kopffelder
SetzeVar( [ ~WdhNr = Hole( FormelWiederholungNr ); ~Kopf = Wenn( LiesAlsBoolean( $$Kopfzeile ); Austauschen( HoleWert( $$Datenhalde; 1 ); [ $$Feldtrenner; ¶ ] ) ) ]; HoleWert( ~Kopf; ~WdhNr ) )
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Formel für Datenfelder
SetzeVar( [ ~DsNr = Hole( DatensatzPositionInErgebnismenge ); ~WdhNr = Hole( FormelWiederholungNr ); ~mitKopf = LiesAlsBoolean( $$Kopfzeile ); ~Daten = Austauschen( HoleWert( $$Datenhalde; ~DsNr + ~mitKopf ); [ $$Feldtrenner; ¶ ] ) ]; HoleWert( ~Daten; ~WdhNr ) )
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Praxis
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Eine Virtuelle Tabelle anlegen
Tabelle: VT
Felder: Kopf Formel[20] Nicht gespeichert, = Formel für KopffelderDaten Formel[20] Nicht gespeichert, = Formel für Datenfelder
• Die Anzahl der Wiederholungen begrenzt, wieviele Spalten angezeigt werden
• Die Datenhalde kann trotzdem mehr Spalten enthalten
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Formel für Kopffelder
SetzeVar( [ ~Feldtrenner = Wenn( $$Feldtrenner = ""; $$Feldtrenner; "{TAB}" ); ~WdhNr = Hole( FormelWiederholungNr ); ~Kopf = Wenn( LiesAlsBoolean( $$Kopfzeile ); Austauschen( HoleWert( $$Datenhalde; 1 ); [ ~Feldtrenner; ¶ ] ) ) ]; HoleWert( ~Kopf; ~WdhNr ) )
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Formel für Datenfelder
SetzeVar( [ ~Feldtrenner = Wenn( $$Feldtrenner = ""; $$Feldtrenner; "{TAB}" ); ~DsNr = Hole( DatensatzPositionInErgebnismenge ); ~WdhNr = Hole( FormelWiederholungNr ); ~mitKopf = LiesAlsBoolean( $$Kopfzeile ); ~Daten = Austauschen( HoleWert( $$Datenhalde; ~DsNr + ~mitKopf ); [ ~Feldtrenner; ¶ ] ) ]; HoleWert( ~Daten; ~WdhNr ) )
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Script: VT | Initialisieren
Script VT | Initialisieren ( Feldtrenner ¶ mitKopfzeile ¶ Datenhalde )
Parameter: 1. Zeile Feldtrennzeichen 2. Zeile logischer Wert (mit Kopfzeile)ab 3. Zeile Datenhalde
Variable setzen [ $$Feldtrenner; Wert: HoleWert( Hole( ScriptParameter ); 1 ) ] Wenn [ $$Feldtrenner = "" ] Variable setzen [ $$Feldtrenner; Wert: "," ] Ende (wenn) Variable setzen [ $$Kopfzeile; Wert:
LiesAlsBoolean( HoleWert( Hole( ScriptParameter ); 2 ) ) ] Variable setzen [ $$Datenhalde; Wert: ElementeMitte( Hole( ScriptParameter ); 3;
999999 ) ] Fenster aktualisieren []
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Virtuelle Tabelle testen
Ergebnis einer SQL-Abfrage anzeigen
Taste: Beispieldaten
Script:VT | Initialisieren ( Feldtrenner ¶ mitKopfzeile ¶ Datenhalde )
Parameter:
Liste( ","; Falsch; SQLAusführen( "SELECT * FROM FileMaker_Fields"; ""; "" ) )
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Interface aufbauen
Tabelle: VT
Felder: g_Daten global, Textg_Feldtrenner global, Textg_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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.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)
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Fragen & Antworten
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Fragen & Antworten
• Jetzt
• Während der Konferenzpausen
• Per E-Mail: [email protected]
Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Vielen Dank unseren Sponsoren
Danke für das Bewerten dieses Vortrages