RELATE ONE

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

version 11 (Modified)


RELATE ONE (manyTable | Field{; choiceField})

引数説明
manyTable | Fieldテーブル | フィールドすべての自動リレーションを実行するテーブル,
または1テーブルへのマニュアルリレーションが引かれたフィールド
choiceFieldフィールド1テーブルの選択フィールド

説明

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

一番目の形式、RELATE ONE(manyTable)は、カレントプロセスのmanyTableに対しすべての自動n対1リレーションを実行します。これはつまり、manyTableの自動n対1リレーションを持つフィールドごとに、コマンドはリレートしたテーブルのリレートしたレコードを選択します。これはプロセスにおいて、リレートしたテーブルのカレントレコードを変更します。

二番目形式RELATE ONE(manyField{;choiceField})は、manyFieldに関連するレコードを検索します。自動リレートである必要はありません。レコードが存在する場合、RELATE ONEはリレート先レコードをメモリにロードし、これをそのテーブルのカレントレコードおよびカレントセレクションにします。

オプション引数のchoiceFieldは、manyFieldが文字フィールドである場合にのみ指定することができます。choiceFieldはリレート先テーブルのフィールドでなければなりません。choiceFieldは文字、数値、日付、時間、またはブ−ルフィールドでなければなりません。テキスト、ピクチャ、BLOBまたはサブテーブルフィールドを選択することはできません。

choiceFieldが指定され、リレート先テーブルで複数のレコードを発見した場合、RELATE ONEmanyFieldの内容と一致するレコードを選択リストに表示します。この選択リストは、左の欄にリレート先フィールドの内容を、右の欄にchoiceFieldの内容を表示します。

manyFieldの内容がワイルドカード記号 (@) で終了する場合、複数のレコードが見つかることがあります。一致するレコードが1件しかなければ、リストは表示されません。choiceFieldを指定することは、テーブルのリレートを設定する時点でワイルドカード選択を指定するのと同じことです。ワイルドカード選択に関する詳細は、4D Design Referenceマニュアルを参照してください。

RELATE ONEは、サブテーブルへのリレートでも動作しますが、親テーブルへのリレート、そしてサブテーブルの順に適切にリレートが設定されている必要があります。サブテーブルに対するリレートを使用する場合は、1回目のRELATE ONEでリレート先レコードをメモリにロードし、2回目のRELATE ONEで関連するサブレコードをロードします。

例題

ここに[Invoice] テーブルと[Customers] テーブルが2つのマニュアルリレートにより関連づけられています。ひとつは[Invoice]Bill toから [Customers]IDへ、もうひとつは[Invoice]Ship toから[Customers]IDにリレートされています。

両方のリレート先は同じ[Customers]テーブルになっており、同時に請求先と発送先の情報を得ることは出来ません。フォームに両方の住所を表示するためには、変数とRELATE ONEコマンドを使用します。 もし、[Customers]フィールドを表示に使用したなら、一方のリレートから得られたデータしか表示されません。

以下は[Invoice]Bill toと[Invoice]Ship toフィールドのオブジェクトメソッドです。これらはフィールドに入力されると実行されます。

[Invoice]Bill to フィールドのオブジェクトメソッド:

   RELATE ONE ([Invoice]Bill to) 
   vAddress1 := [Customers]Address 
   vCity1 := [Customers]City 
   vState1 := [Customers]State 
   vZIP1 := [Customers]ZIP

[Invoice]Ship to フィールドのオブジェクトメソッド:

   RELATE ONE ([Invoice]Ship to) 
   vAddress2 := [Customers]Address 
   vCity2 := [Customers]City 
   vState2 := [Customers]State 
   vZIP2 := [Customers]ZIP

参照

OLD RELATED ONE, RELATE MANY.

システム変数とセット

コマンドが正しく実行されリレートされたレコードがロードされると、OKシステム変数に1が設定されます。ユーザが (リレートされたレコードが更新されたときに表示される) レコード選択ダイアログボックスでキャンセルをクリックすると、OK変数は0に設定されます。


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