RELATE MANY

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 3


RELATE MANY (oneTable | Field)

引数説明
oneTable | Fieldテーブル | フィールドすべての1対nリレーションを実行するテーブル
または1フィールド

説明

RELATE MANYには、2つの形式があります。

第1の形式RELATE MANY(oneTable)は、oneTableに対してすべての1対nのリレートを実行します。このコマンドは、oneTableに対して1対nのリレートを持つ各テーブルのカレントセレクションを更新します。nテーブルのカレントセレクションは、1テーブルのそれぞれのリレート先フィールドの現在値を反映します。このコマンドが実行される度に、nテーブルのカレントセレクションが再構成され、セレクションの最初のレコードがカレントレコードとしてロードされます。

第2の形式RELATE MANY(oneField)は、oneFieldに対して1対nのリレートを実行します。これは、oneFieldと関連を持つテーブルのみに対しカレントセレクションとカレントレコードを変更します。つまり、リレート先テーブルの関連するレコードがnテーブルのカレントセレクションになることを意味します。

Note: RELATE MANYを実行する際に、1テーブルのカレントセレクションが空の場合、このコマンドは何も行いません。

例題

以下の例は、3つのテーブルが自動リレートで関連付けられています。[People]テーブルと[Parts]テーブルは両方とも[Companies]テーブルに対してn対1のリレート関係にあります。

[Companies]テーブルのこのフォームは、[People]テーブルと[Parts]テーブル両方の関連するレコードを表示します。

このフォームを表示すると、[People]テーブルと[Parts]テーブルの関連するレコードがロードされ、それぞれのテーブルのカレントセレクションとなります。

他方プログラムで[Companies]テーブルのレコード選択した場合には、リレート先レコードはロードされません。このような場合にはRELATE MANYコマンドを使用する必要があります。

Notes:

RELATE MANYが空のセレクションに適用されたとき、コマンドは実行されず、nテーブルのセレクションは変わりません。

・コマンドが動作するためには、nフィールドにインデックス属性が付いている必要があります。

以下のメソッドは、[Companies]テーブルの各レコードに対し、警告ウィンドウを表示します。警告ウィンドウには社員数([People]テーブル中の関連するレコードの数)、供給する部品の種類数([Parts]テーブル中の関連するレコードの数)を表示します。この例では、ALERTコマンドの引数が複数行にわたっています。

自動リレートの場合でもRELATE MANYコマンドが必要なことに注目してください。

   ALL RECORDS ([Companies])  ` Select all records in the ーブル 
   ORDER BY ([Companies]; [Companies]Name)  ` Order records in alphabetical order
   For ($i; 1; Records in table ([Companies]))  ` Loop once for each record 
      RELATE MANY ([Companies]Name)  ` Select the related records 
      ALERT ("Company: "+[Companies]Name+Char (13)+"People in company: "
                                 +String (Records in selection ([People]))+Char(13)+
                                  "数値 of parts they supply: "+ String (Records in selection ([Parts]))) 
      NEXT RECORD ([Companies])  ` Move to the next record 
   End for

参照

OLD RELATED MANY, RELATE ONE.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次