4D v14.3

RELATE MANY

Home

 
4D v14.3
RELATE MANY

RELATE MANY 


 

RELATE MANY ( Eine-Tabelle | Feld ) 
Parameter Typ   Beschreibung
Eine-Tabelle | Feld  Tabelle, Feld in Tabelle bzw. Feld, die die Verknüpfungen erhält

RELATE MANY hat zwei Syntaxmöglichkeiten:

Die erste Syntax, RELATE MANY(Eine-Tabelle) lädt alle Eine-zu-Viele Verknüpfungen für Eine-Tabelle. Sie ändert die aktuelle Auswahl aller Tabellen mit einer Eine-zu-Viele Verknüpfung auf Eine-Tabelle. Die aktuelle Auswahl in den Viele-Tabellen richtet sich nach dem aktuellen Wert jedes verknüpften Feldes in der Eine-Tabelle. Jedes Mal, wenn dieser Befehl ausgeführt wird, wird die aktuelle Auswahl der Viele-Tabellen neu erzeugt und der erste Datensatz der Auswahl wird als der aktuelle Datensatz geladen.

Die zweite Syntax, RELATE MANY(Eine-Feld) lädt die Eine-zu-Viele Verknüpfung für das Eine-Feld. Sie ändert nur die Auswahl und den aktuellen Datensatz der Tabellen, die mit Eine-Feld verbunden sind, d.h. die verknüpften Datensätze werden die aktuelle Auswahl für die Viele-Tabelle.

Hinweis: Ist die aktuelle Auswahl in Eine-Tabelle während der Ausführung des Befehls leer, hat er keine Auswirkung.

Im folgenden Beispiel sind drei Tabellen über automatische Verknüpfung miteinander verbunden. Die beiden Tabellen [Mitarbeiter] und [Artikel] haben eine Viele-Zu-Eine Verknüpfung zur Tabelle [Firmen].


Das Formular für die Tabelle [Firmen] zeigt die verknüpften Datensätze aus den beiden anderen Tabellen [Mitarbeiter] und [Artikel] an.

Sobald die Formulare für Mitarbeiter und Artikel angezeigt werden, werden die verknüpften Datensätze für beide Tabellen geladen und darin zur aktuellen Auswahl.

Dagegen werden die verknüpften Datensätze nicht geladen, wenn ein Datensatz für die Tabelle [Firmen] per Programmierung gewählt wird. In diesem Fall müssen Sie den Befehl RELATE MANY verwenden.

Hinweise:

  • Wird RELATE MANY auf eine leere Auswahl angewandt, wird der Befehl nicht ausgeführt und die Auswahl für die Viele-Tabelle ändert sich nicht.
  • Damit der Befehl funktioniert, muss das Fremdschlüsselfeld (Viele-Feld) indiziert sein.

Folgende Methode durchläuft jeden Datensatz der Tabelle [Firmen] und zeigt für jede Firma eine Meldung an. Sie zeigt die Anzahl der Angestellten in der Firma (die Anzahl der verknüpften Datensätze aus [Mitarbeiter]), sowie die Anzahl der Artikel (die Anzahl der verknüpften Datensätze aus [Artikel]. Im Beispiel wird das Argument zum Befehl ALERT zur besseren Übersicht in mehreren Zeilen angezeigt.

Beachten Sie, dass der Befehl RELATE MANY auch bei automatischen Verknüpfungen benötigt wird.

 ALL RECORDS([Firmen]) ` Wähle alle Datensätze in der Tabelle
 ORDER BY([Firmen];[Firmen]Name) ` Sortiere Datensätze alphabetisch
 For($i;1;Records in table([Firmen])) ` Durchlaufe einmal pro Datensatz
    RELATE MANY([Firmen]Name) ` Wähle verknüpfte Datensätze
    ALERT("Firma: "+[Firmen]Name+Char(13)+"Mitarbeiter in Firma: "
    +String(Records in selection([Mitarbeiter]))+Char(13)+"Anzahl der Artikel: "+String(Records in selection([Artikel])))
    NEXT RECORD([Firmen]) ` Gehe zum nächsten Datensatz
 End for

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Verknüpfungen
Nummer: 262

Dieser Befehl ändert die aktuelle Auswahl

 
GESCHICHTE 

Erstellt: < 4D v6

 
SIEHE AUCH 

OLD RELATED MANY
RELATE ONE

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v12.4)
4D Programmiersprache ( 4D v11 SQL Release 6)
4D Programmiersprache ( 4D v14 R3)
4D Programmiersprache ( 4D v14 R2)
4D Programmiersprache ( 4D v13.5)
4D Programmiersprache ( 4D v14.3)
4D Programmiersprache ( 4D v14 R4)