ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v19.8
RELATE ONE SELECTION

RELATE ONE SELECTION 


 

RELATE ONE SELECTION ( manyTable ; oneTable ) 
引数   説明
manyTable  テーブル in nテーブル (リレーションの開始元)
oneTable  テーブル in 1テーブル (リレーションの参照先)

説明   

RELATE ONE SELECTIONコマンドは、manyTable のレコードセレクションをもとにして、oneTable テーブルの新しいセレクションを作成し、その新しいセレクションの最初のレコードをカレントレコードとしてロードします。

このコマンドはmanyTable からoneTable へのリレートがある場合にのみ使用できます。RELATE ONE SELECTIONはリレートの複数レベルを対象に動作できます。manyTableoneTableの間には複数のリレートテーブルがある場合があります。

これらのリレートは、マニュアルリレートまたは自動リレートのどちらでも動作します。もし自動リレーションが存在する場合、RELATE ONE SELECTION はこれらを最初に必ず使用します。開始テーブルから行先テーブルへのパスが複数存在する場合、RELATE ONE SELECTION は自動リレーション(あれば)を使用して最も短いルートをとります。同じサイズの既存のパスが複数あるなかで使用されるパスを管理したい場合、あるいは手動リレーションを"強制的に"使用したい場合には、SET FIELD RELATION コマンドを使用する必要があります。

例題  

以下の例では、今日が請求書の支払期日であるすべての顧客を検索します。

以下は、[Invoices]テーブル内のレコードセレクションに基づき、[Customers]テーブルのセレクションを作成します:

 CREATE EMPTY SET([Customers];"Payment Due")
 QUERY([Invoices];[Invoices]DueDate=Current date)
 While(Not(End selection([Invoices])))
    RELATE ONE([Invoices]CustID)
    ADD TO SET([Customers];"Payment Due")
    NEXT RECORD([Invoices])
 End while

以下の手法ではRELATE ONE SELECTIONを使用して同じ結果を得ています:

 QUERY([Invoices];[Invoices]DueDate=Current date)
 RELATE ONE SELECTION([Invoices];[Customers])

注: バージョン11以降、このコードはパフォーマンスを低下させることなく以下のコードに書き換えることができます:

 QUERY([Customers];[Invoices]DueDate=Current date)



参照 

QUERY
RELATE MANY SELECTION
RELATE ONE
セット

 
プロパティ 

プロダクト: 4D
テーマ: リレーション
番号: 349

このコマンドはカレントレコードを変更しますこのコマンドはカレントセレクションを変更しますThis command can be run in preemptive processes

 
ページの目次 
 
履歴 

変更: 4D v6

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v19)
ランゲージリファレンス ( 4D v19.1)
ランゲージリファレンス ( 4D v19.4)
ランゲージリファレンス ( 4D v19.5)
ランゲージリファレンス ( 4D v19.6)
ランゲージリファレンス ( 4D v19.7)
ランゲージリファレンス ( 4D v19.8)