Mehrere Script-Parameter übergeben.

Seit dem *.fp7-Format ist es in FileMaker möglich, beim Aufruf eines Scriptes einen Script-Parameter zu übergeben, der innerhalb des Zielscriptes ausgelesen und verarbeitet werden kann. Zu diesem Zweck steht im Befehl Script ausführen einer Taste oder in einem Script eine Zeile zur Übergabe eines Parameters für das auszuführende Zielscript zur Verfügung.

Wer intensiv FileMaker-Datenbanken entwickelt, wird jedoch schnell den Wunsch verspüren, nicht nur einen, sondern bei Bedarf auch mehrere Parameter an ein Script zu übergeben. Dies ist zwar standardmäßig im FileMaker nicht vorgesehen, ist aber mittels einer eigenen Funktion (Custom Function) problemlos und bequem möglich. Die verschiedenen Script-Parameter werden einfach als Textkette übergeben, die mit einem bestimmten Trennzeichen voneinander getrennt werden – in meinem Beispiel verwende ich als Trennzeichen den vertikalen Strich ( | ), der auf einem Mac mit der Tastenkombination <alt> – <7> zu erreichen ist.

Custom Function zur Trennung der Einzelparameter

Um bei der Entwicklung einen bequemen Weg zu schaffen, mehrere Script-Parameter übergeben zu können, wird zunächst eine eigene Funktion (Custom Function) benötigt, die eine Textkette der zu übergebenen Script-Parameter in die einzelnen Parameter separieren kann. Ich nenne diese Funktion in meinem Beispiel SeparateString (). Bitte beachten Sie, daß zur Definition eigener Funktionen die Advanced-Version von FileMaker erforderlich ist. In FileMaker Pro werden Sie die im folgenden beschriebenen Punkte nicht durchführen können.

  • Öffnen Sie die Verwaltung für eigene Funktionen unter Datei/Ablage > Verwalten > Eigene Funktionen
  • Klicken Sie auf die Schaltfläche [Neu…]
  • Vergeben Sie den Funktionsnamen SeparateString
  • Geben Sie zwei Funktionsparameter an: String und Nummer
  • Geben Sie nun folgenden Quelltext unter SeparateString (String; Nummer) = an:
Falls(Nummer = 1;
ZeichenLinks ( String; (Position ( String; "|"; 1; 1))-1);
ZeichenMitte ( String;
(Position ( String; "|"; 1; Nummer-1))+1;
(Position ( String; "|"; 1; Nummer)) - ((Position ( String; "|"; 1; Nummer-1))+1)
)
)

Klicken Sie nach der Definition der eigenen Funktion auf die Schaltfläche [OK]. Ab sofort steht Ihnen eine neue Funktion zur Verfügung, mit der Sie beliebige Textketten trennen können, die mit dem von Ihnen vergebenen Trennzeichen versehen wurden. Diese Funktion erfordert die Angabe des Trennzeichens zwischen den Werten und einmal am Ende der Textkette. Um innerhalb eines Scriptes auf die verschiedenen Parameter zugreifen zu können, verwenden Sie im entsprechenden Script nun einfach diese Funktion, z.B. in folgender Form:

Variable setzen [$Wert_1; Wert: SeparateString (Hole(ScriptParameter); 1)]
Variable setzen [$Wert_2; Wert: SeparateString (Hole(ScriptParameter); 2)]

Wenn der zuvor übergebene Script-Parameter zum Beispiel lautete:

Script-Parameter: "Adresse|Ändern|"

…dann enthält die in diesem Beispiel übergebene Variable $Wert_1 den Wert Adresse, und $Wert_2 enthält den Wert Ändern. Ihre neue eigene Funktion können Sie nun überall dort einsetzen, wo Sie mit einfachen Mitteln mehrere Parameter übergeben und hinterher wieder auslesen möchten.

Diesen Beitrag bewerten:

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Bisher noch keine Bewertungen vorhanden)
Loading...

Über den Autor

Markus Schall
Entwicklung von FileMaker-Datenbanken seit 1994, Modifikation und Erweiterung von FileMaker-Lösungen, Konvertierung von FileMaker-Datenbanken von .fm, .fp3, .fp5 (FileMaker 2-6) oder .fp7 (FileMaker 7-11) zu .fmp12 (FileMaker 12-16), Schnittstellen zu Drittsystemen wie Onlineshops, CMS oder andere Datenbanken. Entwicklung individueller FileMaker-Datenbanksysteme auf Basis des gFM-Business-Frameworks mit persönlicher Beratung aus Oldenburg. Betreiber des Online-Fachportals goFileMaker.de, Entwickler des CRM- und Warenwirtschaftssystems gFM-Business. Mitglied in der FileMaker Business Alliance, FileMaker Developers Subscription und FMM Experte. Gewinner eines FMM Award 2011, vergeben durch das FileMaker Magazin.

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.