Werken met gerelateerde gegevens in portalen
Wanneer u gerelateerde gegevens in een portaal weergeeft, worden de waarden uit alle gerelateerde records weergegeven, in overeenstemming met de toegangsprivileges van de gebruiker. Wanneer een gerelateerd veld zich daarentegen buiten een portaal bevindt, wordt alleen de waarde van de eerste gerelateerde record weergegeven.
Portaalgegevens sorteren
Gebruik het dialoogvenster ‘Relatie bewerken’ om gerelateerde records in een portaal te sorteren. Raadpleeg Relaties maken en wijzigen. Wanneer de optie Records sorteren is ingeschakeld en u de gegevens in een gerelateerd veld in een portaal wijzigt, worden de portaalrecords opnieuw gesorteerd telkens als de gerelateerde records opnieuw worden geëvalueerd. De records worden bijvoorbeeld opnieuw gesorteerd wanneer u in de modus Bladeren naar een andere record gaat en vervolgens naar deze record terugkeert, of wanneer u de waarde in het vergelijkingsveld wijzigt. (Gebruik de Portaal vernieuwen scriptstap om beter te controleren wanneer de sorteervolgorde wordt vernieuwd.)
De opgegeven sorteervolgorde in het dialoogvenster ‘Portaalinstelling’ heeft voorrang op de opgegeven sorteervolgorde in het dialoogvenster ‘Relatie bewerken’. Als u geen sorteervolgorde voor het portaal of de relatie opgeeft, worden gerelateerde records in hun aanmaakvolgorde weergegeven in het portaal. Raadpleeg Portalen maken om gerelateerde records weer te geven.
Records in portalen filteren
U kunt records filteren om verschillende reeksen gerelateerde records in een portaal weer te geven.
- Dubbelklik in de modus Lay-out op het portaal.
- Selecteer Portaalrecords filteren.
- Definieer een berekening die resulteert in Waar voor de portaalrecords die moeten worden weergegeven.
U bevindt zich bijvoorbeeld in de lay-out ‘Facturen’ in een portaal met productrecords uit de tabel Regels. Als u alleen de producten met hoeveelheden groter dan of gelijk aan één wilt weergeven, gebruikt u de formule
If (Regels::Hoeveelheid < 1; 0; 1)
.Belangrijk De resultaten van resumévelden, berekeningen en zoekopdrachten zijn gebaseerd op de volledige reeks van gerelateerde records, niet alleen de records in een portaal die zijn gefilterd. Als een portaal bijvoorbeeld een gefilterde deelverzameling van records weergeeft en er buiten het portaal een resuméveld Totaal van is dat deze records resumeert, geeft het resuméveld het totaal van alle gerelateerde records, niet alleen de weergegeven records. Om gegevens uit de gefilterde portaalrecords te gebruiken voor een resuméveld, berekening of zoekopdracht, maakt u een nieuwe relatie met dezelfde criteria als voor de gefilterde portaalrecords en gebruikt u vervolgens gerelateerde velden uit die relatie voor het resuméveld, de berekening of de zoekopdracht.
Gegevens in portalen resumeren
Gegevens van een gerelateerd veld dat in een portaal wordt weergegeven, kunt u resumeren. U kunt bijvoorbeeld het totaal van alle gerelateerde records verkrijgen.
Hiertoe plaatst u een resuméveld in de tabel vanwaar de gerelateerde records worden weergegeven (de tabel weergegeven in het dialoogvenster ‘Portaalinstelling’). Plaats vervolgens het resuméveld in de lay-out met het portaal.
Veronderstel dat een lay-out een portaal gebruikt om alle verkoopcijfers per verkoper weer te geven en dat u een resuméveld wilt toevoegen dat het totale bedrag van de verkoop weergeeft.
Zo resumeert u gegevens in een portaal aan de hand van dit eenvoudige voorbeeld:
- Maak twee tabellen met de volgende velden:
- Maak in de relatiegrafiek een relatie tussen de twee ‘Verkoper-ID’-velden.
- Voeg in de modus Lay-out de vier velden van de tabel ‘Verkoop’ toe aan de lay-out ‘Verkoop’ (als ze niet automatisch zijn toegevoegd). Voeg de twee velden van de tabel ‘Verkoper’ aan de lay-out ‘Verkoper’ toe.
- Maak in de lay-out ‘Verkoper’ een portaal dat gerelateerde records uit de tabel ‘Verkoop’ weergeeft. Voeg de volgende gerelateerde velden uit de tabel ‘Verkoop’ aan het portaal toe: Transactie-ID, Bedrag, Totale verkoop.
U kunt het resuméveld (Verkoop::Totale verkoop) ook op een willekeurige plaats in de lay-out ‘Verkoper’ zetten. Raadpleeg Velden in lay-outs plaatsen en verwijderen.
- Schakel over naar de modus Bladeren en voeg de volgende records aan de tabel ‘Verkoop’ toe:
- Schakel over naar de lay-out ‘Verkoper’ en voeg de volgende gegevens toe:
Tabelnaam |
Veldnaam |
Veldtype |
Opmerking |
Verkoop |
Transactie-ID |
Tekst |
Primaire sleutel |
|
Verkoper-ID |
Tekst |
Refererende sleutel |
|
Bedrag |
Getal |
|
|
Totale verkoop |
Overzicht |
Berekent het totaal van het veld ‘Bedrag’; raadpleeg Resumévelden definiëren |
Verkoper |
Verkoper-ID |
Tekst |
Primaire sleutel |
|
Naam |
Tekst |
|
Recordnummer |
Veld |
Gegevens- |
1 |
Transactie-ID |
T1 |
|
Verkoper-ID |
S1 |
|
Bedrag |
246,00 |
2 |
Transactie-ID |
T2 |
|
Verkoper-ID |
S2 |
|
Bedrag |
52,75 |
3 |
Transactie-ID |
T3 |
|
Verkoper-ID |
S1 |
|
Bedrag |
10,50 |
4 |
Transactie-ID |
T4 |
|
Verkoper-ID |
S2 |
|
Bedrag |
150,00 |
5 |
Transactie-ID |
T5 |
|
Verkoper-ID |
S1 |
|
Bedrag |
17,80 |
FileMaker Pro vult de waarde van het veld ‘Totale verkoop’ in.
Recordnummer |
Veld |
Gegevens- |
1 |
Verkoper-ID |
S1 |
|
Naam |
André Cuyper |
2 |
Verkoper-ID |
S2 |
|
Naam |
Sofie Tang |
FileMaker Pro voert de gerelateerde waarden uit de tabel ‘Verkoop’ in de rijen van het portaal in en berekent het totaal van de verkoop voor die verkoper in het resuméveld ‘Totale verkoop’.
Opmerkingen
- De filter- en sorteeropties voor portalen in het dialoogvenster ‘Portaalinstelling’ zijn niet beschikbaar voor portalen die records uit de huidige tabel weergeven. Raadpleeg Portalen voor lay-outs van het type lijstdetail maken.
- U kunt gegevens uit een enkelvoudige relatie in meerdere portalen op dezelfde pagina weergeven en voor elke portaal een andere sorteervolgorde gebruiken.
- Filtering van records is uitsluitend voor weergavedoeleinden, niet voor beveiligingsdoeleinden.
- Een filterberekening voor het portaal zou hetzelfde resultaat als een berekeningveld in de gerelateerde tabel geven.
- Hoewel velden in portaalrecords worden bijgewerkt naarmate de gegevens worden gewijzigd, wordt een portaalfilter pas geëvalueerd wanneer de record wordt geladen. Gebruik de Portaal vernieuwen scriptstap om een portaalfilter bij te werken nadat de record is geladen.
- Voor een complexer resumé van uw gegevens gebruikt u een berekeningveld om een formule te definiëren. Raadpleeg Berekeningvelden definiëren.