はい、今日は、AdventCalendar 2016 FileMaker Tips 12/03の記事です。
今日は、スクリプトトリガのOnModeEnterとOnModeExitです。
まずは、どういう動きか、↓でどうぞ。
https://youtu.be/nCZGW3zosyk
レイアウトが切り替わった後と、切り替わったレイアウトから抜ける時(別のレイアウトへ移動する時)にかかるスクリプトトリガです。
今回の例では、印刷レイアウトに移動した際にグローバルフィールドを更新し、元のレイアウトに戻る際に印刷後の編集としてグローバルフィールドの値を更新しています。
グローバルフィールドのデータセット確認として、元のレイアウトに「印刷文言」を表示していますが、確認用なので、実際には不要なこともあります。
仕込むときは、移動した先のレイアウト(今回の場合は印刷レイアウト)の設定になります。
レイアウトを切り替えた際に動くOnModeEnterは、「レイアウト設定」のスクリプトトリガでOnModeEnterで動くスクリプトを指定します。
レイアウトを抜ける時(別のレイアウトに切り替わる直前)に動くスクリプトトリガOnModeExitで動くスクリプトも同様に指定します。
「印刷」ボタンを作って、印刷が終わったらグローバルフィールドの更新を行えばいいじゃないか、という実装方法もありますが、このスクリプトトリガを使うメリットは、
・印刷するスクリプトは印刷するスクリプトで専念させる
・印刷が終わった後、レイアウトを切り替える際のみに必要となる処理をスクリプトトリガにまかせる
というような、仕様の切り分けが行えます。
なぜ仕様の切り分けが必要かというと、印刷スクリプトでレイアウトを切り替える際の処理も入れてしまうと、印刷後レイアウトを切り替える処理のみに仕様変更が入った場合に、不要なミスを埋め込みやすいということがあります。
これは、小さなことですが、修正するときは不要な箇所を触らない、というメリットもあります。
もちろん、レイアウト切り替えを行わない印刷後の後処理の場合は今回のスクリプトトリガOnModeExitは使えませんので、別スクリプトにするなどの対策が必要です。
ということで、本日はレイアウトの切り替えで使えるOnModeEnterとOnModeExitをお送りしました!