+ All Categories
Home > Technology > FMK2015: Virtuelle Tabellen by Arnold Kegebein

FMK2015: Virtuelle Tabellen by Arnold Kegebein

Date post: 21-Mar-2017
Category:
Upload: verein-fm-konferenz
View: 1,081 times
Download: 4 times
Share this document with a friend
33
Dipl.-Ing. (FH) Arnold Kegebein Virtuelle Tabellen – Workshop FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Virtuelle Tabellen Dipl.-Ing. (FH) Arnold Kegebein
Transcript
Page 1: FMK2015: Virtuelle Tabellen by Arnold Kegebein

Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop

FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com

Virtuelle TabellenDipl.-Ing. (FH) Arnold Kegebein

Page 2: FMK2015: Virtuelle Tabellen by 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

Page 3: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 4: FMK2015: Virtuelle Tabellen by Arnold Kegebein

Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop

FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com

Theorie

Page 5: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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)

Page 6: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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.

Page 7: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

• …

Page 8: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 9: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 10: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 11: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 12: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 13: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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 ) )

Page 14: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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 ) )

Page 15: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 16: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 17: FMK2015: Virtuelle Tabellen by Arnold Kegebein

Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop

FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com

Praxis

Page 18: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 19: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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 ) )

Page 20: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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 ) )

Page 21: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 22: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 23: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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 []

Page 24: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 25: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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"; ""; "" ) )

Page 26: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 27: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 28: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 29: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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

Page 30: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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)

Page 31: FMK2015: Virtuelle Tabellen by Arnold Kegebein

Dipl.-Ing. (FH) Arnold KegebeinVirtuelle Tabellen – Workshop

FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com

Fragen & Antworten

Page 32: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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]

Page 33: FMK2015: Virtuelle Tabellen by Arnold Kegebein

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


Recommended