Anzeige
Anzeige

Más contenido relacionado

Presentaciones para ti(20)

Similar a FMK2015: Virtuelle Tabellen by Arnold Kegebein(20)

Anzeige

Más de Verein FM Konferenz(20)

Anzeige

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
  4. Dipl.-Ing. (FH) Arnold Kegebein Virtuelle Tabellen – Workshop FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Theorie
  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
  13. Dipl.-Ing. (FH) Arnold Kegebein Virtuelle Tabellen – Workshop FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Formel für Kopffelder SetzeVar( [ ~WdhNr = Hole( FormelWiederholungNr ); ~Kopf = Wenn( LiesAlsBoolean( $$Kopfzeile ); Austauschen( HoleWert( $$Datenhalde; 1 ); [ $$Feldtrenner; ¶ ] ) ) ]; HoleWert( ~Kopf; ~WdhNr ) )
  14. Dipl.-Ing. (FH) Arnold Kegebein Virtuelle Tabellen – Workshop FileMaker Konferenz 2015 Hamburg www.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 ) )
  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
  17. Dipl.-Ing. (FH) Arnold Kegebein Virtuelle Tabellen – Workshop FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Praxis
  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
  19. Dipl.-Ing. (FH) Arnold Kegebein Virtuelle Tabellen – Workshop FileMaker Konferenz 2015 Hamburg www.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 ) )
  20. Dipl.-Ing. (FH) Arnold Kegebein Virtuelle Tabellen – Workshop FileMaker Konferenz 2015 Hamburg www.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 ) )
  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
  23. Dipl.-Ing. (FH) Arnold Kegebein Virtuelle Tabellen – Workshop FileMaker Konferenz 2015 Hamburg www.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 []
  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
  25. Dipl.-Ing. (FH) Arnold Kegebein Virtuelle Tabellen – Workshop FileMaker Konferenz 2015 Hamburg www.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"; ""; "" ) )
  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)
  31. Dipl.-Ing. (FH) Arnold Kegebein Virtuelle Tabellen – Workshop FileMaker Konferenz 2015 Hamburg www.filemaker-konferenz.com Fragen & Antworten
  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
Anzeige