Help us understand the problem. What is going on with this article?

【FileMaker】意外と敷居が高いらしい - スクリプトトリガ - OnModeEnterとOnModeExit

More than 3 years have passed since last update.

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

今日は、スクリプトトリガのOnModeEnterOnModeExitです。

まずは、どういう動きか、↓でどうぞ。
https://youtu.be/nCZGW3zosyk

レイアウトが切り替わった後と、切り替わったレイアウトから抜ける時(別のレイアウトへ移動する時)にかかるスクリプトトリガです。

今回の例では、印刷レイアウトに移動した際にグローバルフィールドを更新し、元のレイアウトに戻る際に印刷後の編集としてグローバルフィールドの値を更新しています。

グローバルフィールドのデータセット確認として、元のレイアウトに「印刷文言」を表示していますが、確認用なので、実際には不要なこともあります。
スクリーンショット 2016-12-03 14.35.15.png

仕込むときは、移動した先のレイアウト(今回の場合は印刷レイアウト)の設定になります。

レイアウトを切り替えた際に動くOnModeEnterは、「レイアウト設定」のスクリプトトリガでOnModeEnterで動くスクリプトを指定します。
スクリーンショット 2016-12-03 14.37.22.png

レイアウトを抜ける時(別のレイアウトに切り替わる直前)に動くスクリプトトリガOnModeExitで動くスクリプトも同様に指定します。
スクリーンショット 2016-12-03 14.37.48.png

「印刷」ボタンを作って、印刷が終わったらグローバルフィールドの更新を行えばいいじゃないか、という実装方法もありますが、このスクリプトトリガを使うメリットは、
・印刷するスクリプトは印刷するスクリプトで専念させる
・印刷が終わった後、レイアウトを切り替える際のみに必要となる処理をスクリプトトリガにまかせる
というような、仕様の切り分けが行えます。

なぜ仕様の切り分けが必要かというと、印刷スクリプトでレイアウトを切り替える際の処理も入れてしまうと、印刷後レイアウトを切り替える処理のみに仕様変更が入った場合に、不要なミスを埋め込みやすいということがあります。
これは、小さなことですが、修正するときは不要な箇所を触らない、というメリットもあります。

もちろん、レイアウト切り替えを行わない印刷後の後処理の場合は今回のスクリプトトリガOnModeExitは使えませんので、別スクリプトにするなどの対策が必要です。

ということで、本日はレイアウトの切り替えで使えるOnModeEnterとOnModeExitをお送りしました!

tyuma
個人事業主として、様々な言語や現場を経験し、FileMakerの仕事をしています。 汎用機からイマドキまでこなしてきていますが、もう体力的にJavaは打ち止めにしたいです。。。 現在はFileMakerで小回りの効くシステム開発をメインにお仕事を受注しています。
https://www.youtube.com/channel/UC98aghnO5siL91xf6_24R5Q
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away