Warenkorb
0
Wagen 0
Telefonische Beratung +49 (0) 4482-562 90 70
Mit der Funktion „Datensätze exportieren“ verfügt FileMaker im Script-Editor über eine sehr mächtige Funktion, Daten aus einer FileMaker-Datenbank in verschiedenen Formaten zu exportieren. Soll ein Datenexport jedoch als Textdatei, also beispielsweise als CSV exportiert werden, kann man mit FileMaker-Bordmitteln schon mal an Grenzen stoßen. Zum einen unterstützt FileMaker ausschließlich den Export von Textdateien, dessen Feldinhalte mit einem Tabulator oder mit einem Komma getrennt werden. Standardmäßig exportiert FileMaker Textdateien außerdem im UTF-16-Format, was nicht selten beim Import auf der anderen Seite für Probleme sorgen kann, da die meisten Systeme UTF-8 als Format voraussetzen. Setzt man die zu erstellende Datei in FileMaker z.B. mit einer Formel selbst zusammen, kommt es regelmäßig zu Problemen mit dem Zeilenende, da FileMaker keinen echten Zeilenumbruch einfügt. All diese Schwierigkeiten lassen sich ganz einfach umschiffen, indem man den Datenexport mit Hilfe des Base Elements Plugins selbst programmiert. In diesem Artikel zeigen wir, wie einfach das zu realisieren ist.
Unter Zuhilfenahme des Base Elements Plugins kann der gesamte Exportvorgang aus FileMaker heraus inklusive Dateiauswahl auf einfache Weise umgesetzt werden. Um einen Dialog zum Speichern einer neuen Datei anzuzeigen, fügen Sie in Ihrem Script den folgenden Befehl ein:
Variable setzen [$datei; Wert: BE_SaveFileDialog ("Titel"; "Dateivorgabe.csv"; "Dateipfadvorgabe")]
Der Benutzer kann nun wie bei der in FileMaker integrierten Exportfunktion zunächst durch sein Dateisystem navigieren und an einer beliebigen Stelle eine neue Datei erzeugen. Ist die ausgewählte Datei bereits vorhanden, erfolgt bereits betriebssystemseitig eine Abfrage, ob die vorhandene Datei ersetzt werden soll. Der Dateiname und -pfad befindet sich nach der Auswahl oder Angabe des Dateinamen in der Variable $datei und kann in den folgenden Scriptschritten weiterverwendet werden. Hat der Benutzer auf die Schaltfläche [Abbrechen] geklickt, ist die Variable $datei leer.
Im nächsten Schritt können nun bei Bedarf bereits die Feldbezeichnungen in die zu exportierende Datei geschrieben werden. Dies erfolgt mit dem Base Elements Plugin mit folgendem Befehl:
Variable setzen [$error; Wert: BE_WriteTextToFile ( $datei; "bez1;bez2;bez3 ... ¶" )]
Wichtig ist an dieser Stelle, den Zeilenumbruch am Ende der Feldbezeichnungen einzufügen. Nun können bereits die einzelnen Datensätze in die Datei geschrieben werden. Da der Export vollständig gescriptet wird, erfolgt das Schreiben innerhalb einer Schleife Datensatz für Datensatz.
Gehe zu Datens./Abfrage/Seite [Erste(r)]
Schleife (Anfang)
Variable setzen [$error; Wert: BE_WriteTextToFile ( $datei; Feld1 & ";" & Feld2 & ";" ... & "¶"; 1 )]
Gehe zu Datens./Abfrage/Seite [Nächste(r); Nach letztem beenden]
Schleife (Ende)
In unserem Beispiel haben wir das Semikolon als Feldtrennzeichen zwischen den Feldern verwendet. Selbstverständlich können Sie an dieser Stelle auch jedes beliebige andere Feldtrennzeichen verwenden. Wichtig ist auch hier der Zeilenumbruch am Ende der Zeile sowie der weitere Parameter „1“ des Befehls „BE_WriteTextToFile“. Dieser Parameter heißt „append“ und sorgt dafür, daß die Zeile zur bestehenden Datei hinzugefügt und die bestehende Datei nicht durch die Zeile überschrieben wird. Standardmäßig wird die Textdatei im UTF-8-Format exportiert. Mit dem Befehl „BE_SetTextEncoding“ können außerdem folgende andere Zeichenkodierungen verwendet werden:
ASCII, ISO-8859-{1, 2, 3, 4, 5, 7, 9, 10, 13, 14, 15, 16}, KOI8-R, KOI8-U, KOI8-RU, CP{1250, 1251, 1252, 1253, 1254, 1257}, CP{850, 866, 1131}, Mac{Roman, CentralEurope, Iceland, Croatian, Romania}, Mac{Cyrillic, Ukraine, Greek, Turkish}, Macintosh, ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic}, EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1, EUC-CN, HZ, GBK, CP936, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, BIG5-HKSCS:2004, BIG5-HKSCS:2001, BIG5-HKSCS:1999, ISO-2022-CN, ISO-2022-CN-EXT, EUC-KR, CP949, ISO-2022-KR, JOHAB, ARMSCII-8, Georgian-Academy, Georgian-PS, KOI8-T, PT154, RK1048, ISO-8859-11, TIS-620, CP874, MacThai, MuleLao-1, CP1133, VISCII, TCVN, CP1258, HP-ROMAN8, NEXTSTEP, UTF-8, UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF-7, C99, JAVA, UCS-2-INTERNAL, UCS-4-INTERNAL, CP {437, 737, 775, 852, 853, 855, 857, 858, 860, 861, 863, 865, 869, 1125}, CP864, EUC-JISX0213, Shift_JISX0213, ISO-2022-JP-3, BIG5-2003, TDS565, ATARIST und RISCOS-LATIN1
Das Base Elements Plugin ist kostenlos erhältlich und steht für Mac OS X und Windows jeweils als 32-Bit- und als 64-Bit-Version zum Download zur Verfügung. Das Plugin verfügt mittlerweile über vielfältige Befehle in den folgenden Bereichen:
Alle Funktionen werden auf der Wiki-Seite des Plugins detailliert dokumentiert.
Wußten Sie schon, daß goFileMaker.de auch FileMaker Coaching und Training anbietet? Gerne sind wir Ihnen bundesweit per Fernwartung bei der Entwicklung oder Erweiterung Ihrer FileMaker-Lösung behilflich. Nehmen Sie bei Interesse gerne Kontakt mit uns auf!
Die kanadische Softwareschmiede HomeBase Software hat in ihrem Blog eine Methode vorgestellt, wie sich in FileMaker 12 ohne Zuhilfenahme eines Plugins Bilder stufenlos in der Größe skalieren lassen. Um diese Funktionalität zu realisieren, nutzen die Entwickler die FileMaker-Funktion HoleVorschaubild (Quellfeld; AnBreiteAnpassen; AnHöheAnpassen). Im Blog-Artikel haben die Autoren eine Beispieldatei zum…
Popup-Menüs sind eine praktische Sache - vor allem dann, wenn wenig Platz auf dem Display zur Verfügung steht. Dies ist auf dem iPhone und iPad durchaus der Fall, doch leider unterstützt FileMaker Go keine Plugins von Drittherstellern, mit denen Popup-Menüs in FileMaker bisher meist realisiert wurden. Aufgrund der abgeschotteten Umgebung in…
FileMaker hat heute einige Sicherheitsupdates für FileMaker 13 veröffentlicht. In ca. zwei Wochen wird das Sicherheitsupdate auch für FileMaker 12 veröffentlicht. Das heute erschienene Update betrifft FileMaker 13 Pro/Advanced und FileMaker Server. FileMaker betont, dass die Updates auf jeden Fall in der korrekten Reihenfolge installiert werden müssen, weil anderenfalls FileMaker…
Auf der Suche nach einer Lösung, eine Datei nach dem Import vom lokalen- oder Netzlaufwerk zu entfernen, bin ich auf eine interessante Lösung gestoßen, wie dies in FileMaker ohne Einsatz eines zusätzlichen Plugins möglich ist. Um eine Datei per Scriptbefehl zu löschen, muß zunächst der Dateiname in eine Variable geschrieben…
Hinzufügen von {{itemName}} zum Warenkorb
Hinzugefügt {{EinkaufsName}} zum Warenkorb