01 - Master-Detail relaties
In sessie 3 heb je een pakbon gebouwd en het gedrag van het tekstveld verkend. Maar wat als je meerdere orders op één rapport wilt tonen — elk met hun eigen regels? Dan heb je een master-detail relatie nodig.
Je kent dit patroon al uit sessie 1: in de boomstructuur zit een Order (de master) met daaronder Regels (de details). Wat nieuw is, is dat je dit patroon nu gaat vertalen naar het rapport.
Wat is een master-detail relatie?
Een master-detail relatie beschrijft een ouder-kind verhouding tussen twee niveaus van data. Vergelijk het met een inhoudsopgave van een boek: elk hoofdstuk (master) heeft meerdere paragrafen (detail).
Concrete voorbeelden uit het bedrijfsdomein:
| Master | Detail | Voorbeeld |
|---|---|---|
| Order | Orderregels | Order 10042 heeft 5 regels |
| Klant | Orders | Bakkerij de Zon heeft 12 orders |
| Productcategorie | Producten | Categorie “Meel” bevat 8 producten |
| Factuur | Factuurregels | Factuur F-2024-0158 heeft 3 regels |
Hoe ziet dit eruit in het business object?
Neem een rapport dat alle orders van een klant toont:
Klant
├── Naam: Bakkerij de Zon
├── Plaats: Utrecht
└── Orders
├── Order
│ ├── OrderNummer: 10042
│ ├── Datum: 2024-03-15
│ └── Regels
│ ├── Regel (Tarwebloem, 50)
│ └── Regel (Roggebloem, 20)
└── Order
├── OrderNummer: 10043
├── Datum: 2024-03-22
└── Regels
├── Regel (Suiker, 30)
├── Regel (Bakpoeder, 10)
└── Regel (Vanille-extract, 5) Hier zijn twee niveaus van herhaling:
- Niveau 1 (master): Orders — herhaalt per order
- Niveau 2 (detail): Regels — herhaalt per regel binnen een order
Wat betekent dit voor het rapport?
Op het rapport wil je dit resultaat:
Order 10042 — 15 maart 2024
Tarwebloem 50
Roggebloem 20
Order 10043 — 22 maart 2024
Suiker 30
Bakpoeder 10
Vanille-extract 5 Elke order heeft een eigen koptekst met het ordernummer, gevolgd door de bijbehorende regels. Dit kun je niet met één databand oplossen — je hebt er twee nodig, genest in elkaar. Hoe dat werkt leer je in de volgende theorieslide.
Samenvatting
- Een master-detail relatie beschrijft een ouder-kind verhouding: de master herhaalt, en per master herhalen de details
- Dit patroon zie je terug in de boomstructuur van het business object
- Op het rapport vertaalt dit zich naar meerdere databanden die in elkaar zijn genest
- Vergelijk het met een inhoudsopgave: hoofdstukken (master) met paragrafen (detail)
Meer in deze rubriek
- 01 - Master-Detail relaties
- 02 - Oefening Master-Detail
- 03 - Geneste databanden
- 04 - Oefening Geneste Databanden
- 05 - Child Bands
- 06 - Oefening Child Bands
- 07 - Groepering
- 08 - Oefening Groepen Herkennen
- 09 - Groepering Instellen
- 10 - Oefening Groepering
- 11 - Subtotalen
- 12 - Oefening Subtotalen
- 13 - Sorteren
- 14 - Oefening Sorteren Groeperen
- 15 - Leverbon bouwen
- 16 - Oefening Leverbon