FileMakerスクリプトで関連レコードへ移動の文脈設定術
スクリプト

FileMakerスクリプトで関連レコードへ移動の文脈設定術

2026年5月15日 admin スクリプト

FileMakerでスクリプトを書いていると、「関連レコードへ移動」ステップで思ったレイアウトやデータに移動できず、迷子になってしまうことがあります。原因の多くは「文脈(コンテキスト)」の理解不足です。この記事では、できるだけ専門用語をかみ砕きながら、「関連レコードへ移動」を思い通りに動かすための文脈設定のコツを解説します。

「関連レコードへ移動」で起こりがちなトラブル

まず、よくあるつまずきポイントを整理しておきましょう。

  • 別テーブルのレイアウトに移動したつもりが、関係ないレコードが表示される
  • 期待した件数より多い(または少ない)レコードが表示される
  • ポータルから移動したときと、通常レイアウトから移動したときで結果が変わる
  • スクリプトを別のレイアウトで使ったら、結果がおかしくなった

これらは「どのテーブルオカレンスを起点に関連レコードをたどるか」という文脈がずれていることが主な原因です。

FileMakerにおける「文脈」とは?

FileMakerでは、同じテーブルでも「テーブルオカレンス」という別名付きの入り口が複数存在します。リレーションシップグラフに表示される四角い箱がそれです。

そして、レイアウトは必ずどれかひとつのテーブルオカレンスにひも付きます。スクリプトが実行されるとき、「今どのレイアウトにいるか」で、「起点となるテーブルオカレンス=文脈」が決まります。

ポイントは次の1つです。

  • 文脈=現在のレイアウトが基準になるテーブルオカレンス

「関連レコードへ移動」は、この文脈をスタート地点として、リレーションをたどっていきます。ですので、レイアウトやポータルの違いによって結果が変わるのは、スタート地点が変わっているから、というわけです。

「関連レコードへ移動」ステップの基本設定

スクリプトステップ「関連レコードへ移動」には、いくつか重要なオプションがあります。代表的なものを押さえておきましょう。

  • 関連テーブル:どのリレーション(テーブルオカレンス)をたどるか
  • 新規ウインドウで表示:元画面を残したまま別ウインドウに結果を表示するか
  • 現在のレイアウトを使用 / レイアウトを指定:どのレイアウトで結果を表示するか
  • 対象レコードのみ表示する:関連したレコードだけを抽出した状態で表示するか

ここで特に大事なのは、「関連テーブル」と「レイアウトを指定」の組み合わせです。関連テーブルとして指定したテーブルオカレンスと、移動先レイアウトの元となっているテーブルオカレンスが一致するように意識しましょう。

文脈をコントロールする基本パターン

文脈を安定させるための、よく使うパターンを紹介します。

1. 必ず特定のレイアウトから実行する

スクリプトの最初で、必ず想定しているレイアウトに移動しておく方法です。

  1. スクリプト冒頭で「レイアウト切り替え」で基準レイアウトに移動
  2. その後に「関連レコードへ移動」を実行

この方法なら、「どの画面からスクリプトを呼び出しても、いったん基準レイアウトに戻ってから関連レコードをたどる」形になるため、文脈のブレを抑えられます。

2. ポータル行を文脈の起点にする

ポータル上のボタンから「関連レコードへ移動」を行う場合は、「現在のポータル行」が文脈の一部になります。

  • ポータルの元となっているテーブルオカレンスを、「関連テーブル」で指定する
  • ポータル行のボタンからスクリプトを呼び出すことで、「今クリックした行」を基準にできる

このとき、移動先レイアウトのテーブルオカレンスが、ポータルのテーブルオカレンスと合っているか確認してください。

「レイアウトを指定」の考え方

「関連レコードへ移動」では、「現在のレイアウトを使用」か「レイアウトを指定」かを選べます。

現在のレイアウトを使用はシンプルですが、「今どのレイアウトにいるか」に結果が依存するため、スクリプトを使い回すときに不安定になりがちです。

一方、レイアウトを指定しておけば、「常にこのレイアウト(=この文脈)で表示する」という動きになるため、動作を読みやすくできます。ただし、そのレイアウトの元テーブルオカレンスが、指定した関連テーブルと一致していなければいけません。

迷ったときは、

  • 「レイアウトを指定」を使って、スクリプト内で移動先レイアウトを固定する
  • そのレイアウトのテーブルオカレンスが、関連テーブルと同じか必ず確認する

というルールにしておくと、トラブルが減ります。

デバッグ時に確認すべきチェックポイント

もし思ったとおりの関連レコードに移動できない場合は、次の順番で確認してみてください。

  1. スクリプト実行時点で、どのレイアウトにいるか(レイアウト名と元テーブルオカレンス)
  2. 「関連レコードへ移動」で指定している「関連テーブル」はどれか
  3. 移動先として指定しているレイアウトの元テーブルオカレンスは何か
  4. リレーションシップグラフで、起点から関連テーブルまでのつながりが正しいか

この4つを順にたどるだけで、ほとんどの問題は原因が見えてきます。

まとめ:文脈を意識したスクリプト設計を

「関連レコードへ移動」で迷子にならないためには、次の3点を押さえることが大切です。

  • 文脈=「現在のレイアウトが基準にしているテーブルオカレンス」と理解する
  • スクリプト内でレイアウトを明示的に指定し、起点と移動先のテーブルオカレンスを揃える
  • ポータルや別レイアウトから呼び出すときも、「今どの文脈から実行されているか」を意識する

文脈の考え方に慣れてくると、関連レコードの移動だけでなく、集計や条件分岐など、FileMaker全体の設計がぐっと理解しやすくなります。まずは小さなスクリプトから、レイアウトとテーブルオカレンスの関係を意識して組み立ててみてください。

※ 本稿は、生成AIを使用して執筆しています。重要な内容については、必ずご自身でマニュアル等をご確認ください。