4D v19RELATE ONE SELECTION | 
            |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
                 
                
    
    
                 | 
                
			
                    
                         
    4D v19
 
RELATE ONE SELECTION 
                                
                                
        
 | 
                ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| RELATE ONE SELECTION ( manyTable ; oneTable ) | ||||||||
| 引数 | 型 | 説明 | ||||||
| manyTable | テーブル | 
             
         | 
        nテーブル (リレーションの開始元) | |||||
| oneTable | テーブル | 
             
         | 
        1テーブル (リレーションの参照先) | |||||
RELATE ONE SELECTIONコマンドは、manyTableのレコードセレクションをもとにして、oneTableテーブルの新しいセレクションを作成し、その新しいセレクションの最初のレコードをカレントレコードとしてロードします。
このコマンドはmanyTableからoneTableへのリレートがある場合にのみ使用できます。RELATE ONE SELECTIONはリレートの複数レベルを対象に動作できます。manyTableとoneTableの間には複数のリレートテーブルがある場合があります。これらのリレートは、マニュアルリレートまたは自動リレートのどちらでも動作します。
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)
	プロダクト: 4D
	テーマ: リレーション
	番号: 
        349
        
        
        
	
	変更: 4D v6
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	ランゲージリファレンス ( 4D v19)
	
	
	
	ランゲージリファレンス ( 4D v19.1)
コメントを追加