De plaats van gerelateerde velden bepalen

Velden uit gerelateerde tabellen plaatst u rechtstreeks in de lay-out of in portalen die gerelateerde records weergeven.

Rechtstreeks in lay-outs: Plaats gerelateerde velden rechtstreeks in de lay-out om gegevens uit de eerste gerelateerde record weer te geven, zelfs wanneer meerdere records voldoen aan de criteria van de relatie. (De eerste gerelateerde record die wordt weergegeven, wordt bepaald door het feit of in de relatie een sorteervolgorde is opgegeven.)

In portalen: Als u de gegevens wilt weergeven uit alle gerelateerde records die voldoen aan de criteria van de relatie, plaatst u de gerelateerde velden in een portaal in een lay-out.

Voor bijvoorbeeld een lay-out Factuur in een database Facturen kunt u de volgende handelingen uitvoeren:

Voeg gerelateerde velden toe aan de factuur waarop gegevens uit de database Klanten worden weergegeven, zoals klantnummer en informatie over contactpersonen. (Het veld Klantnummer is het vergelijkingsveld.) Aangezien de database Klanten slechts één record voor elk klantnummer bevat, worden bijgevolg in elk gerelateerd veld in de factuur de gegevens voor de betreffende klant weergegeven.

Voeg een gerelateerd veld toe aan de factuur waarin de recentste waarde van het veld Orderdatum uit de database Orderhistorie wordt weergegeven. (Nogmaals, het veld Kantnummer is het vergelijkingsveld.) Als de klant meer dan één bestelling heeft geplaatst, zijn er meerdere records in Orderhistorie die voldoen aan het klantnummer van deze klant. Door een sorteervolgorde op te geven in het veld Orderdatum wanneer u de relatie opgeeft, wordt de recentste datum weergegeven in het gerelateerde veld wanneer het rechtstreeks in de lay-out wordt geplaatst (niet in een portaal).

Voeg aan de factuur gerelateerde velden toe waarin gegevens over elk besteld artikel worden weergegeven, zoals Productnummer, Productnaam, Eenheidsprijs, enzovoort. (Het veld Ordernummer is het vergelijkingsveld.) Aangezien een factuur doorgaans meerdere producten bevat (er worden meerdere gerelateerde records weergegeven), kunt u een portaal maken voor de gerelateerde velden. Elke rij van het portaal bevat één gerelateerde record met gerelateerde velden die u in de database Artikelen hebt geselecteerd.

Hoe FileMaker Pro Advanced verwijzingen naar gerelateerde velden in portalen evalueert

Wanneer u een gerelateerd veld plaats in een portaal dat gerelateerde records weergeeft, gebruikt FileMaker Pro Advanced één van de twee beginpunten om de gerelateerde gegevens te evalueren die moeten worden weergegeven: de record in de tabel van het portaal of de record in de tabel van de lay-out. Het beginpunt is van belang, omdat het gevolgen heeft voor de gerelateerde gegevens die in het veld worden weergegeven.

FileMaker Pro Advanced bepaalt welk beginpunt moet worden gebruikt op basis van het pad van relaties tussen twee tabellen in de relatiegrafiek:

de tabel van de lay-out

de tabel van het veld (de tabel die het geplaatste veld bevat).

Als het relatiepad van de lay-outtabel naar de veldtabel de portaaltabel bevat, is de record in de portaaltabel het beginpunt. Anders is de record in de lay-outtabel het beginpunt.

Bijvoorbeeld de volgende relatiegrafiek laat een database voor schoolinschrijvingen zien. De grafiek bevat tabellen voor docenten, klassen en studenten en een inschrijvingstabel om aan te geven welke studenten in welke klassen zitten. Er is ook een mentorentabel (een andere versie van de docententabel), waarin aan elke student een mentor is toegewezen.

Voorbeeld van relatiegrafiek die relaties weergeeft voor vijf tabellen in een database voor schoolinschrijvingen

Kijk naar de volgende lay-out, waarin de ingeschreven studenten per klas worden weergegeven. De lay-outtabel is Klassen en de portaaltabel is Studenten.

Voorbeeld van een portaal in een lay-out

In de onderstaande tabel wordt beschreven hoe FileMaker Pro Advanced de beginpunten definieert voor vier velden die in dit portaal zijn geplaatst vanuit verschillende tabellen.

 

Geplaatst veld

Pad vanaf lay-outtabel naar veldtabel

Bevat pad portaaltabel?

Begin- punt

Opmerking

Naamveld uit
Studententabel

Klassen-Inschrijving-Studenten

Ja

Portaalrecord

Het geplaatste veld komt uit de portaaltabel (komt zeer veel voor). In het veld zou een ingeschreven student worden weergegeven in elke rij van het portaal

Naamveld uit
Tabel Mentoren

Klassen-Inschrijving-
Studenten-Mentoren

Ja

Portaalrecord

In het geplaatste veld zou de mentor van elke student worden weergegeven in elke rij van het portaal

Naam uit
Tabel Docenten

Klassen-Docenten

Nee

Lay-outrecord

Het geplaatste veld zou de docent voor de klas herhalen in elke rij van het portaal, niet de eerste gerelateerde docentwaarde voor elke student.

Naam klas uit tabel Klassen

Klassen

Nee

Lay-outrecord

Het geplaatste veld komt uit de lay-outtabel (komt niet veel voor). In het veld wordt de naam van de klas herhaald voor elke rij in het portaal, wat overbodig is als de lay-out het veld Naam klas bevat buiten het portaal.

Naast velden die in een portaal zijn geplaatst, bepaalt FileMaker Pro Advanced met deze methode het beginpunt voor andere verwijzingen naar velden in portalen.

Invoerlijsten: wanneer een invoerlijst is gedefinieerd om alleen gerelateerde waarden uit een veld te bevatten, en een veld in een portaal is ingesteld om deze invoerlijst weer te geven. (Het beginpunt bepaalt de waarden die worden weergegeven in de invoerlijst.)

Berekeningen: wanneer berekeningen in scripts verwijzen naar velden terwijl een portaal actief is.

Meestal bepaalt FileMaker Pro Advanced welke gerelateerde gegevens moeten worden weergegeven. U kunt echter het beginpunt wijzigen door andere tabellen en relaties in de relatiegrafiek op te nemen, en vervolgens de gerelateerde velden waarnaar in het portaal wordt verwezen te wijzigen.

Verwante onderwerpen:

Werken met velden in een lay-out

Velden in lay-outs plaatsen en verwijderen

Portalen maken om gerelateerde records weer te geven

Werken met gerelateerde tabellen

Voorbeeld van een invoerlijst die alleen waarden uit gerelateerde velden bevat