動作の仕組み
カレンダーのテーブルとイベントのテーブルの間にはリレーションシップが設定されていませんが、どのように動作しているのですか?
以下の図表をご覧ください。
- SQLクエリが、関連する日/週/月のレコードを検索し、グローバル変数として書き込みます。動作が遅いように思えるかもしれませんが、実はたいへん高速です。その後、付加的なスクリプトがこの変数を参照し、さらにここから変数を作ります。そのため、他のスクリプトは、「$$sc_ArrayContent」などの変数を簡単にインポートできます。
- 次に、カレンダーのレイアウトに、「CalendarRows」テーブルからのポータル行が表示され、日/週/月のグリッドが描画されます。
- 最後に、「CalendarRows」テーブルの計算フィールドがグローバル変数を使用してその日のイベントを見つけ、関連するコンテンツを表示します。
このアイディアでは、描画する必要のある「セル」の数は問いません。カレンダーはFileMaker Serverからデータを一度取得するだけです。このようにして、複数のポータルに基づくカレンダーよりもずっと高速で動作します。