Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.6
RELATE ONE SELECTION
|
RELATE ONE SELECTION ( Viele-Tabelle ; Eine-Tabelle ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
Viele-Tabelle | Tabelle |
![]() |
Name der Viele-Tabelle (Start der Verknüpfung) | |||||
Eine-Tabelle | Tabelle |
![]() |
Name der Eine-Tabelle (Ende der Verknüpfung) | |||||
Der Befehl RELATE ONE SELECTION erstellt eine neue Auswahl an Datensätzen für die Tabelle Eine-Tabelle, ausgehend von der Auswahl in der Tabelle Viele-Tabelle und lädt den ersten Datensatz der neuen Auswahl als den aktuellen Datensatz.
Dieser Befehl kann nur verwendet werden, wenn eine Verknüpfung von der Viele-Tabelle zur Eine-Tabelle existiert. RELATE ONE SELECTION funktioniert auch auf mehreren Verknüpfungsebenen. Zwischen der Viele-Tabelle und der Eine-Tabelle können mehrere verknüpfte Tabellen liegen. Die Verknüpfungen können manuell oder automatisch sein.
Die Verknüpfungen können manuell oder automatisch sein. Wenn automatische Verknüpfungen vorhanden sind, werden sie immer zuerst von RELATE ONE SELECTION verwendet. Wenn mehrere Pfade von der Starttabelle zur Zieltabelle möglich sind, nimmt RELATE ONE SELECTION den kürzesten, wobei automatische Verknüpfungen (falls vorhanden) verwendet werden. Wenn es bereits Pfade derselben Größe gibt und Sie den verwendeten Pfad kontrollieren oder die Verwendung manueller Verknüpfungen „erzwingen“ möchten, müssen Sie den Befehl SET FIELD RELATION verwenden.
Folgendes Beispiel findet alle Kunden, deren Rechnungen heute fällig sind.
In der Tabelle [Customers] wird eine Auswahl erstellt, die von den in der Tabelle [Invoices] ausgewählten Datensätzen ausgeht:
CREATE EMPTY SET([Customers];"Zahlung ist fällig")
QUERY([Invoices];[Invoices]DueDate=Current date)
While(Not(End selection([Invoices])))
RELATE ONE([Invoices]CustID)
ADD TO SET([Customers];"Zahlung ist fällig")
NEXT RECORD([Invoices])
End while
Folgende Technik kommt mit RELATE ONE SELECTION zum gleichen Ergebnis:
QUERY([Invoices];[Invoices]DueDate=Current date)
RELATE ONE SELECTION([Invoices];[Customers])
Hinweis: Seit Version 11 lässt sich dieser Code ohne Performance-Verlust auch folgendermaßen schreiben:
QUERY([Customers];[Invoices]DueDate=Current date)
Produkt: 4D
Thema: Verknüpfungen
Nummer:
349
Geändert: 4D v6
4D Programmiersprache ( 4D v20)
4D Programmiersprache ( 4D v20.1)
4D Programmiersprache ( 4D v20.2)
4D Programmiersprache ( 4D v20.3)
4D Programmiersprache ( 4D v20.4)
4D Programmiersprache ( 4D v20.5)
4D Programmiersprache ( 4D v20.6)