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.

  1. Dubbelklik in de modus Lay-out op het portaal.
  2. Selecteer Portaalrecords filteren.
  3. 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:

  1. Maak twee tabellen met de volgende velden:
  2. 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

     

  3. Maak in de relatiegrafiek een relatie tussen de twee ‘Verkoper-ID’-velden.
  4. 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.
  5. 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.

  6. Schakel over naar de modus Bladeren en voeg de volgende records aan de tabel ‘Verkoop’ toe:
  7. 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.

  8. Schakel over naar de lay-out ‘Verkoper’ en voeg de volgende gegevens toe:
  9. 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.