Script-Trigger in FileMaker auf Registerschaltflächen nutzen.

FileMaker Kurz-Tipp: Register mit Script-Trigger versehenBereits seit längerer Zeit verfügt FileMaker über die Möglichkeit, Objekten Script-Trigger zuzuweisen, die beispielsweise beim Betreten, bei der Änderung oder beim Verlassen von Objekten ausgeführt werden können. Während dies z.B. mit Feldern problemlos funktioniert, werden Script-Trigger bei Registerschaltflächen nicht ohne Weiteres ausgeführt. Mittels eines kleinen Tricks läßt sich diese Funktion trotzdem realisieren, um beispielsweise beim Betreten eines Registers einen globalen Schlüssel zu aktualisieren oder Ähnliches. Dabei wird allen Registern ein Script-Trigger „BeiObjektÄndern“ zugewiesen. Im Ziel-Script muß daraufhin nur noch abgefragt werden, welches Register gerade aktiv ist. Dies geschieht mit der Funktion:

Wenn [LiesLayoutobjektAttribut ("Ihr Register"; "istVorderesRegisterfeld") = 1]
  Ihre Funktion
Ende (wenn)

Mit diesem kleinen Workaround ist es möglich, in FileMaker auch Registerschaltflächen mit Script-Triggern zu versehen, um bei Auswahl eines Registers ein beliebiges Script auszuführen.

Diesen Beitrag bewerten:

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (2 Stimmen, Durchschnitt: 5,00 von 5)
Loading...

Über den Autor

Markus Schall
Entwicklung von FileMaker-Datenbanken und Schnittstellen zu Drittsystemen seit 1994. Mitglied der FileMaker Business Alliance und FileMaker Developers Subscription sowie FMM Experte, FMM Award 2011 Preisträger. Entwickler der FileMaker-basierten gFM-Business ERP-Software mit persönlicher Beratung aus Oldenburg.

2 Kommentare

  1. Claudius von Wrochem

    Vielen Dank für den Tip! Ich wäre nicht darauf gekommen, dass sich eine Statusfunktion bei den Logikfunktionen versteckt.

    Antworten
  2. Ralf Arnold

    Genial!
    Nach dieser Lösung habe ich lange vergeblich gesucht.

    Hier ein kleines Skript (basierend auf den von Markus beschriebenen Vorarbeiten), mit dem man angeklickte Reiter überprüfen und eigene Funktionen entsprechend ausführen lassen kann.

    Eine gute Idee ist es, die Reiter mit einer Nummer zu versehen, die in einer Schleife automatisch mit der Funktion „FortlNrInTextÄndern“ erhöht werden können.

    #Skript Anfang
    Variable setzen [$Tab; Wert:“Tab1“]
    #$Tab = Name des ersten Reiters
    Schleife (Anfang)
    Verlasse Schleife wenn [LiesLayoutobjektAttribut ( $Tab ; „istVorderesRegisterfeld“ )]
    Variable setzen [$Tab; Wert:FortlNrInTextÄndern ( $Tab ; 1 )]
    Schleife (Ende)
    #
    #Hier die eigenen Funktionen einfügen…
    #Skript Ende

    Gruß
    Ralf

    Antworten

Schreibe einen Kommentar zu Ralf Arnold Antworten abbrechen

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