関連レコードへ移動
オプション
-
[関連レコードの取得元:] は、現在のデータベース内のテーブルの一覧からソースのリレーションシップを指定します。テーブルが一覧に含まれていない場合や、リレーションシップを追加または変更する必要がある場合は、[データベースの管理...] を使用して [「(ファイル名)」のデータベースの管理] ダイアログボックスを表示し、リレーションシップの作成や編集を行うことができます。
-
[レコードの表示に使用するレイアウト:] は、関連レコードの表示に使用される現在のファイル内のレイアウトを指定します。
-
[外部テーブルのレイアウトを使用] では、指定した外部テーブルを含むファイルを開き、関連レコードを表示するファイルからレイアウトを選択できます。このオプションは、選択したソースのリレーションシップが別のファイル内のテーブルを参照する場合にのみ使用できます。
-
[新規ウインドウに表示] は、新規ウインドウ内の関連レコードを表示し、新規ウインドウの設定値を指定できるようにします。[新規ウインドウ] スクリプトステップを参照してください。
ヒント 関連レコードをもつ新規ウインドウを自動的に前面に表示するには、[ウインドウを選択] スクリプトステップを追加します。
-
[関連レコードのみを表示] では、関連テーブル内の新規対象レコードを、現在のレコードに一致するか、または対象レコード全体と一致するかのいずれかのオプションで作成できます。対象レコードの最初のレコードが現在のレコードになります。このオプションを選択しないと、[関連レコードへ移動] により、テーブルの未ソート順序内にある最初のレコードが現在のレコードになります。
-
[現在のレコードのみを照合] では、現在のレコードに一致するレコードのセットを含む関連テーブル内に新規対象レコードを作成できます。たとえば、現在表示している「顧客」テーブル内の顧客レコードに一致する関連「請求書」テーブルに 3 つのレコードがあって、3 つの請求書すべてを見たい場合は、[現在のレコードのみを照合] を使用して 3 つの請求書を表示します。
-
[現在の対象レコード内のすべてのレコードを照合] では、現在の対象レコード内のすべてのレコードに一致する関連テーブル内に新規対象レコードが作成されます。たとえば、10 人の顧客の対象レコードがあって、10 人の顧客の誰かに一致する「請求書」テーブルに 40 の請求書がある場合は、[現在の対象レコード内のすべてのレコードを照合] を使用して 40 の一致する請求書を表示します。ソート順序を定義していない場合は、対象レコードは未ソートになります。
-
[アニメーション] では、関連レコードを表示するときに使用するアニメーションを指定します (Claris Go および FileMaker Go のみ)。
互換性
製品 | サポート |
FileMaker Pro | 一部 |
FileMaker Go | はい |
FileMaker WebDirect | 一部 |
FileMaker Server | 一部 |
FileMaker Cloud | 一部 |
FileMaker Data API | 一部 |
カスタム Web 公開 | 一部 |
起点バージョン
6.0 以前のバージョン
説明
たとえば、「顧客」テーブルに関連付けられた「請求書」テーブルがあり、現在、ある特定の請求書が表示されているとします。「請求書」テーブルには [関連レコードへ移動 [顧客]] というスクリプトステップが設定されたボタンがあります。このボタンをクリックすると、現在表示されている請求書がどの顧客レコードに関連付けられているかが判別され、「顧客」テーブル内の該当レコードに即座に移動します。該当するレコードが「顧客」テーブルの対象レコードとして現在抽出されていない場合は、スクリプトで検索を実行して、該当するレコードを現在のレコードにすることができます。
ヒント 関連レコードが見つからない場合、このスクリプトステップはエラーコードを返します。このエラーコードは、Get (最終エラー) 関数を使用して処理することができます。
このスクリプトステップは、ポータル行に対して使用することもできます。このスクリプトステップがアクティブなポータル内の行で使用されている場合は、ポータルのテーブルが関連テーブルになり、テーブル内の関連レコードが現在のレコードになります。ポータルのテーブルが関連テーブルでない場合、対象レコード内の最初の関連レコードが現在のレコードになります。
このスクリプトステップを外部ファイルのテーブルと併用すると、外部テーブルが含まれるファイルが開き、指定した外部レイアウト (レイアウトが選択されている場合) に移動します。
場合によっては、[関連レコードへ移動] スクリプトステップを含むスクリプトにより、意図しない対象レコードが変更されてしまうことがあります。次に例を示します:
-
関連レコードが見つからない場合は、このスクリプトステップが現在のレイアウト上に残ります。
-
リレーションシップのないテーブルオカレンスやテーブルオカレンスを正しく参照していないレイアウトを選択した場合、FileMaker Pro ではエラーメッセージが表示されます。エラーメッセージが表示された後は、スクリプトの実行は次のスクリプトステップを継続します。
-
関連レコードがない場合や、アクティブなポータル内の行にレコードがない場合は、スクリプトが予想外の結果を生成することがあります。[関連レコードへ移動] を使用する前に、IsEmpty 関数を使用して、関連レコードがないことを確認してください。
-
[リレーションシップ編集] ダイアログボックスの [このリレーションシップを使用して、このテーブルでのレコードの作成を許可] が有効で、ポータル内の空白の行から [関連レコードへ移動] が実行されている場合、スクリプトにより予期しない結果が発生する場合があります。
メモ
-
このスクリプトステップによって新しいウインドウが開いた場合、新しいウインドウでは OnFirstWindowOpen スクリプトトリガまたは OnWindowOpen スクリプトトリガはアクティブになりません。これは、トリガされたスクリプトが目的のレイアウトまたは表示形式に移動しないためです。[関連レコードへ移動] によって新しいウインドウが開いた後でスクリプトを実行するには、次のスクリプトステップとしてスクリプト実行を追加してください。
-
関連レコードが外部ファイル内にある場合は、ソート順序は維持されません。
-
このスクリプトステップがフィルタリングされたポータル行のコンテキストで実行され、[関連レコードのみを表示] オプションが設定されていた場合、新しい対象レコード内はフィルタリングされたレコードのみになります。ただし、フィルタリングされたポータル行にフォーカスがない場合、新しい対象レコードにはフィルタリングされたレコードだけではなくすべての関連レコードが含まれます。
-
アニメーションは、選択したウインドウでのみ使用できます。
-
スライダまたはステータスツールバーのボタンを使用したレコード間の移動にアニメーションを使用することはできません。
例 1
「請求書」テーブル内の関連レコードに移動して、関連レコードの対象レコードをソートします。
関連レコードへ移動 [関連レコードのみを表示; テーブル: 「請求書」; 使用するレイアウト: 「請求書」 (請求書)]
レコードのソート [記憶する; ダイアログあり: オフ]
レコード/検索条件/ページへ移動 [最初の]
例 2
「請求書」テーブル内の関連レコードに移動して、新しいウインドウで関連レコードの対象レコードをソートします。
関連レコードへ移動 [関連レコードのみを表示; テーブル: 「請求書」; 使用するレイアウト: 「請求書」 (請求書); 新規ウインドウ]
レコードのソート [記憶する; ダイアログあり: オフ]
レコード/検索条件/ページへ移動 [最初の]
例 3
レコードを左からスライドインして「請求書」テーブルに関連レコードを表示します。
関連レコードへ移動 [関連レコードのみを表示; テーブル: 「請求書」; 使用するレイアウト: 「請求書」 (請求書); アニメーション: 左からスライドイン]