【FileMaker】意外と敷居が高いらしい – スクリプトトリガ – OnObjectSave

はい、今日は、AdventCalendar 2016 FileMaker Tips 12/15の記事です。

今回は、スクリプトトリガのOnObjectSaveです。
アクティブなオブジェクトが検証および保存された後に動きます。
現在編集中だったフィールドを抜けて(自動で保存される設定の場合はここで保存がされる)、次のフィールドへいくなどの動作の直前に動くスクリプトトリガです。

まずは、動作確認です。
https://youtu.be/qmvbi1qttlA

この例では、プルダウンで値を変更すると、以前と違う設定になっているので次のフィールドへの移動がそれぞれ違う、という動きです。
プルダウンで「小学生」を入力すると「小学校名」へ、「中学生」を入力すると「中学校名」へ、「高校生」を入力すると「高校名」へとカーソルが移動します。

この仕掛けが、OnObjectSaveで行われています。
スクリーンショット 2016-12-14 14.07.49.png

OnObjectModifyも似たような動きですが、OnObjectModifyは保存に関係なく「フィールドが編集された」場合です。
OnObjectSaveは、編集された・されないに関わらず、「フィールドが保存されたら」動くということになります。

FileMakerは自動保存がデフォルトなので、なかなか違いに気づかないかもしれませんが、レイアウトの自動保存を外すと、OnObjectSaveが走った後に保存のダイアログが表示されるのを確認できると思います。
レイアウトの自動保存設定は、↓になります。
スクリーンショット 2016-12-14 15.25.05.png

自動保存をしない設定では、編集が終わったらダイアログが出て来ます。
スクリーンショット 2016-12-14 15.25.19.png
これをみると、OnObjectSaveは、レコードの保存が行われる前に動くんだな、というのがわかると思います。

細かいですが、自動保存をしないレイアウトの場合は、気をつけてくださいね。