どのような時にカレンダーが再描画されますか?
イベントを編集する
どのようにしてこの動作を実現しているかというと、ウインドウを開いたときにレコードの修正状況が記録されています(「イベント詳細」ウインドウを同時に複数開いた際にも、記録されています)。そして緑色のボタンをクリックしてウインドウを閉じると、修正状況をチェックし、イベントが修正されていればカレンダーが再描画されます。
イベントを編集するプロセスに何らかの動作を追加したい場合は、「Close Window & Refresh Calendar」スクリプトの「Commit Record」のコメントの前に動作を追加します。
「再描画」ボタン
カレンダーのヘッダにある、次の日/週/月へ移動する右向き矢印の隣に、「再描画」ボタンがあります。このボタンは、表示したい新規イベントがある場合に、サーバに対して手動で再描画をリクエストするために使用します。カレンダーは描画するイベントをキャッシュし、サーバに対して新規イベントを継続的にリクエストすることはありません。このカレンダーが従来のFileMakerのカレンダーよりもずっと高速で動作する理由のひとつが、この点です。
ただしこれは、自分が操作をしない限りは編集内容や新規イベントのレコードがカレンダーに表示されることはないということを意味します。通常は、このことは問題にはなりません。カレンダーはレコードの編集や表示の切り替えやフィルタするたびにサーバから新規イベントをリクエストするからです。しかし画面を見ているだけであれば、「再描画」をクリックすればサーバから最新のデータを取得できます。
これはあまり“FileMakerらしく”ないように思えますが、きわめて複雑な画面は(そして従来のカレンダーのほとんどは)、自動で再描画をすることはありません。表示のために使用しているリレーションシップが“深すぎて”、サーバからの新規または編集されたレコードに関する通知に応答できないからです。
「Calendar」レイアウトを表示する際に再描画する
「Calendar」レイアウトには、このレイアウトを表示するたびにカレンダーを再描画するスクリプトトリガを割り当ててあります。