RELATE MANY

4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 3


RELATE MANY (Eine-Tabelle | Feld)

ParameterTypBeschreibung
Eine-Tabelle | FeldTabelle | FeldTabelle bzw. Feld, die die Verknüpfungen erhält

Beschreibung

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.

Beispiel

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.

Beispiel

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

Referenz

OLD RELATED MANY, RELATE ONE.

Anwendung des Befehls

Related Tables


4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next