03 - Geneste databanden
Je weet nu dat een master-detail relatie twee niveaus van herhaling heeft. In de designer vertaal je dit naar geneste databanden: een databand binnen een databand.
Vergelijk het met een set russische matroesjka-poppen: de buitenste pop (master-databand) herhaalt per order, en binnenin zit een kleinere pop (detail-databand) die herhaalt per orderregel.
Hoe ziet dat eruit op het canvas?
Neem het voorbeeld van een orderoverzicht met regels per order:
┌─────────────────────────────────────┐
│ ReportTitle │
│ Klant: {Klant.Naam} │
├─────────────────────────────────────┤
│ DataBand1 (master — Orders) │
│ Order: {Orders.OrderNummer} │
│ Datum: {Orders.Datum} │
│ ┌─────────────────────────────────┐ │
│ │ DataBand2 (detail — Regels) │ │
│ │ {Regels.Omschrijving} {Regels│.│Aantal}
│ └─────────────────────────────────┘ │
├─────────────────────────────────────┤
│ PageFooter │
└─────────────────────────────────────┘ De detail-databand (DataBand2) zit fysiek binnen de master-databand (DataBand1) op het canvas. Dit vertelt Stimulsoft dat de regels bij de bovenliggende order horen.
Stap voor stap: geneste databanden maken
Stap 1 — Master-databand toevoegen
- Ga naar Invoegen > DataBand
- Plaats de databand op het canvas
- Koppel aan het master-object (bijvoorbeeld
Orders)
Stap 2 — Mastervelden plaatsen
- Sleep enkelvoudige velden van de master naar de databand (ordernummer, datum)
Stap 3 — Detail-databand toevoegen
- Ga opnieuw naar Invoegen > DataBand
- Plaats de nieuwe databand binnen de master-databand — sleep hem naar de binnenkant
- Koppel aan het detail-object (bijvoorbeeld
Regels)
Stap 4 — Detailvelden plaatsen
- Sleep de detailvelden naar de binnenste databand (omschrijving, aantal)
Wat gebeurt er bij het genereren?
Stimulsoft verwerkt de geneste databanden van buiten naar binnen:
- Lees de eerste master-rij (Order 10042)
- Vul de mastervelden in (ordernummer, datum)
- Lees alle detail-rijen van deze master (2 regels)
- Herhaal de detail-databand 2 keer
- Ga naar de volgende master-rij (Order 10043)
- Herhaal stap 2-4 (nu met 3 regels)
Het resultaat: elke order verschijnt met alleen de eigen regels.
De relatie is automatisch
Stimulsoft herkent automatisch welke detailrijen bij welke masterrij horen, op basis van de boomstructuur in het business object. Je hoeft geen filter of koppelveld in te stellen — de nesting op het canvas is voldoende.
Dit werkt omdat de data via business objects binnenkomt, waar de relatie al in de structuur zit. Bij externe databronnen (buiten de scope van deze training) zou je de relatie handmatig moeten leggen.
Samenvatting
- Geneste databanden zijn een databand binnen een databand op het canvas
- De buitenste databand herhaalt per master-rij, de binnenste per detail-rij
- Stimulsoft koppelt automatisch de juiste details aan de juiste master
- Vergelijk het met matroesjka-poppen: elke pop bevat een kleinere die onafhankelijk herhaalt
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