FileMakerで一覧画面を使っていると、「他の人が入力した最新データがすぐに見えない」「集計結果を自動で更新したい」と感じることはないでしょうか。毎回「レコードの再読み込み」ボタンを押したり、画面を開き直したりするのは手間ですし、抜け漏れの原因にもなります。
そこで便利なのが「OnTimerスクリプト」を使った一覧の自動更新です。少し設定するだけで、一定時間ごとに自動でスクリプトを実行し、一覧の内容を新しく保つことができます。
この記事では、専門用語はできるだけ控えつつ、OnTimerスクリプトで一覧を自動更新する基本的な考え方と、実際の設定手順をわかりやすく解説します。
OnTimerスクリプトとは何か?
OnTimerスクリプトは、FileMakerに用意されている「一定時間ごとにスクリプトを実行する」ための仕組みです。
タイマーのように時間をカウントし、あらかじめ指定した秒数が経過したら、自動的に選んだスクリプトが実行されます。
例えば、
- 30秒ごとに一覧を再検索して最新のレコードを表示し直す
- 1分ごとに集計フィールドを再表示する
- 5分ごとにログデータを別テーブルに転記する
といった動きが、ユーザーが何もしなくても自動で行えるようになります。
一覧自動更新で何が便利になる?
一覧画面の自動更新を導入すると、次のようなメリットがあります。
- 他ユーザーの更新が見落とされにくい
共有データベースでは、別の担当者が入力した内容を自分の画面でもすぐに確認したい場面が多くあります。自動更新しておけば、「更新ボタンを押し忘れて古い情報を見ていた」というミスを減らせます。 - リアルタイム集計に近い使い心地
受注リストや在庫一覧、進捗ボードなどで、数字や状況をほぼリアルタイムで見たい場合にも効果的です。短い間隔で自動更新しておけば、常に新しい情報に近い状態を維持できます。 - ユーザー操作をシンプルにできる
画面操作の手順が減ることで、PCに慣れていない方でも安心して使える画面設計がしやすくなります。
OnTimerスクリプトで実現する基本の流れ
一覧自動更新の基本的な流れは、とてもシンプルです。
- 一覧を更新するためのスクリプトを作る(検索・ソートなど)
- そのスクリプトをOnTimerで定期的に実行するように設定する
- 不要になったらタイマーを止める
この3つを組み合わせることで、「開いているだけで勝手に新しくなる一覧画面」を作ることができます。
一覧更新用スクリプトを作る
まずは、自動で実行させたい「一覧更新」の処理をスクリプトにまとめます。ここでは、シンプルな会社の受注一覧を例にします。
スクリプトのイメージは次のようなものです。
- 今表示している条件(例:自分の担当分だけ見る)を保ったまま再検索する
- 表示順(ソート順)を整え直す
- 画面がチカチカしないように、画面更新を制御する
具体的には、次のようなステップがよく使われます。
- 「ウインドウ内容更新停止」をオンにする(画面チラつき防止)
- 必要に応じてグローバルフィールドなどに設定された条件を読み込む
- 「現在の検索条件を使って再検索」または「検索条件を設定して実行」
- 「レコードのソート」を再実行する
- 「ウインドウ内容更新停止」をオフにする
このスクリプトに「一覧_自動更新」など、わかりやすい名前をつけて保存しておきます。
OnTimerスクリプトを設定する方法
次に、作成したスクリプトを一定時間ごとに自動実行するための設定を行います。OnTimerの設定は、「スクリプトステップ」の一つである「タイマースクリプトを設定」を使って行います。
1. タイマーを設定するスクリプトを作る
タイマー開始用のスクリプトを1本用意しておくと管理しやすくなります。
設定のポイントは次の通りです。
- 「タイマースクリプトを設定」ステップを追加する
- 実行するスクリプトとして、先ほど作成した「一覧_自動更新」を指定する
- 実行間隔(秒数)を指定する(例:30秒、60秒など)
例として、「一覧_タイマー開始」という名前で、
- 対象レイアウトに移動する
- タイマースクリプトを設定(一覧_自動更新 / 30秒ごと)
- すぐに一度だけ「一覧_自動更新」を実行
という流れにしておくと、ユーザーが画面を開いた瞬間から自動更新がスタートします。
2. タイマーを止めるスクリプトも用意する
タイマースクリプトは、設定したままにしておくと、そのウインドウを閉じるまで動き続けます。
別の画面に移動した時にも動き続けると、思わぬタイミングで一覧更新スクリプトが動いてしまうことがあります。
これを防ぐために、「タイマースクリプトを設定」ステップで「スクリプト名を空(なし)」で実行し、タイマーを解除するスクリプトも作っておきます。これを「一覧_タイマー停止」などと名付けます。
レイアウト切り替え時やウインドウを閉じる前に、この停止スクリプトを実行するようにしておくと安心です。
どのくらいの間隔で更新すればいい?
自動更新の間隔は短ければ短いほど「リアルタイム」に近づきますが、その分サーバーやネットワークへの負荷が高くなります。また、ユーザーの操作中に割り込むような形でスクリプトが動きやすくなります。
目安としては、次のような考え方がおすすめです。
- 情報の変化が激しくない業務:60〜120秒程度
- 進捗ボードなど、ある程度リアルタイム性が欲しい画面:20〜60秒程度
- 同時接続ユーザー数が多い場合:長め(60秒以上)にして様子を見る
まずは少し長めの間隔で試し、動きや負荷を確認しながら短くしていくのが無難です。
ユーザー操作とのぶつかりをどう防ぐ?
タイマースクリプトは、ユーザーが入力している最中にも実行される可能性があります。そのため、次のような工夫をしておくとトラブルを避けやすくなります。
- 一覧画面専用にする
編集用レイアウトではタイマーを使わず、「一覧表示専用」のレイアウトでのみタイマーを動かす構成にします。編集したいときは別画面で開き、一覧は常に読み取り専用に近い使い方にすると安全です。 - 一時的にタイマーをオフにするボタンを用意する
「自動更新を一時停止」というボタンを作り、必要なときにユーザーが自分でタイマーを止められるようにしておくと、細かい調整がしやすくなります。 - 更新スクリプトの内容を軽くする
毎回大量の検索や重い処理を実行すると、ユーザー体験が悪くなります。可能な限りシンプルな「再検索+再ソート」にとどめるなど、処理を軽く保つことも重要です。
まとめ:小さな工夫で一覧が「生きた画面」に
OnTimerスクリプトを使った一覧自動更新は、少しの設定で使い勝手を大きく改善できるテクニックです。
- 一覧更新の処理をスクリプトにまとめる
- OnTimerスクリプトでそのスクリプトを定期的に実行する
- タイマー開始・停止用のスクリプトを用意して、動く場面をコントロールする
- 更新間隔は短すぎないようにし、負荷と使いやすさのバランスを取る
これらを意識して設定すれば、FileMakerの一覧画面は「開きっぱなしにしておくだけで、ほぼリアルタイムに近い最新情報が見られる便利な画面」に変わります。
まずはテスト用のファイルや限られたレイアウトから試してみて、自社の運用に合った更新間隔や画面の作り方を探してみてください。