計算フィールドの評価コンテキストの選択
コンテキストとは、リレーションシップグラフ内のテーブルで、リレーションシップの評価の基準になるテーブルです。ソーステーブルに計算式を定義する場合、リレーションシップグラフにそのテーブルの複数の別の名前があるときは、計算式を評価する基準になるコンテキストを指定する必要があります。
選択した各コンテキストは、リレーションシップグラフ内の異なるテーブルを表し、データの異なる表示を表します。計算式のコンテキストを選択すると、FileMaker Pro ではそのテーブルの名前から計算式が評価されます。選択した各コンテキストは関連テーブルと関連フィールドの異なる関係を表すため、適切な結果を得るには、計算式の評価コンテキストを選択することが重要です。
コンテキストによって異なる計算結果の例
「色ソーステーブル」および「形ソーステーブル」という 2 つのソーステーブルで構成されるデータベースがあるとします。これらのテーブルには、次のようなプロパティがあります:
ソーステーブル名 |
リレーションシップグラフのテーブルオカレンス |
フィールド名 |
色ソーステーブル |
色テーブル 1、色テーブル 2 |
色 スタイル番号 重さ |
形ソーステーブル |
形テーブル |
形 スタイル番号 重さ 値段 |
これらのテーブルは次のように関連しています:
次の 2 つの別個のリレーションシップがあります:
- 1 番目のリレーションシップでは、「色テーブル 1」と「形テーブル」が「スタイル番号」フィールドを使用して関連しています。
- 2 番目のリレーションシップでは、「色テーブル 2」と「形テーブル」が「重さ」フィールドを使用して関連しています。
「色テーブル 1」と「色テーブル 2」は同じソーステーブルを共有するため、「色ソーステーブル」に定義されている計算は、「色テーブル 1」テーブル名または「色テーブル 2」テーブル名のいずれかのコンテキストから評価することができます。
このリレーションシップのしくみを確認するために、コンテキストが「色ソーステーブル」にある 2 つの計算フィールドにどのように影響するかを考えてみます。各計算フィールドは同じ式を使用して「形ソーステーブル」の値段の合計を決定しており、評価コンテキストだけが異なります。「形ソーステーブル」には、次の値が含まれる 3 つのレコードがあります:
形 |
スタイル番号 |
重さ |
値段 |
円 |
100 |
5 |
¥200 |
正方形 |
100 |
2 |
¥600 |
長方形 |
200 |
2 |
¥900 |
「色ソーステーブル」には、次の値が含まれるレコードが 1 つあります:
色 |
スタイル番号 |
重さ |
赤 |
100 |
2 |
これらのリレーションシップでは異なる照合フィールドが使用されているため、各リレーションシップは関連レコードの異なるセットを返します。
計算結果 1
「スタイル番号」を照合フィールドとして使用する「色テーブル 1」と「形テーブル」の間のリレーションシップでは、次の 2 つのレコードが返されます:
形 |
スタイル番号 |
重さ |
値段 |
円 |
100 |
5 |
¥200 |
正方形 |
100 |
2 |
¥600 |
「色テーブル 1」のコンテキストから評価するように設定された「Sum (形テーブル::値段)
」という式で定義されている「色ソーステーブル」の計算フィールドでは、¥800 という値が返されます。
計算結果 2
「重さ」を照合フィールドとして使用する「色テーブル 2」と「形テーブル」の間のリレーションシップでは、次の 2 つのレコードが返されます:
形 |
スタイル番号 |
重さ |
値段 |
正方形 |
100 |
2 |
¥600 |
長方形 |
200 |
2 |
¥900 |
「色ソーステーブル」に定義された 2 番目の計算フィールドは、同じ式「Sum (形テーブル::値段)
」を使用しますが、「色テーブル 2」のコンテキストから評価するように設定されています。この計算フィールドでは、¥1500 という値が返されます。
メモ
- 計算式を作成するときに、[計算式の指定] ダイアログボックスに関連テーブルとして表示されるか、非関連テーブルとして表示されるかは、評価コンテキストによって決まります。
- 計算式では、非関連テーブルのグローバルフィールドを使用することができます。非関連テーブルから使用できるフィールドは、これらのフィールドのみです。