05 - Child Bands
Je hebt net een orderbevestiging gebouwd met een databand die elke regel op dezelfde manier toont. Maar in de praktijk zijn niet alle regels hetzelfde. Een order kan artikelregels bevatten (met artikelnummer, aantal en prijs) én tekstregels (met alleen een opmerking of toelichting). Die twee typen vereisen een andere layout.
Hoe toon je ze allebei in dezelfde databand? Daarvoor gebruik je child bands met een Enabled-expressie.
Wat is een child band?
Een child band is een extra band die direct onder een databand hangt. Bij elke herhaling van de databand kan de child band wel of niet worden getoond — afhankelijk van een voorwaarde in de eigenschap Enabled.
Vergelijk het met een dubbele deur: bij elke herhaling opent Stimulsoft ofwel de linkerdeur (artikelregel), ofwel de rechterdeur (tekstregels), afhankelijk van het type regel.
Het probleem zonder child bands
Stel: je orderregels bevatten twee typen:
| RegelType | ArtikelNummer | Omschrijving | Aantal | Prijs |
|---|---|---|---|---|
Artikel | A001 | Tarwebloem | 50 | 1.20 |
Tekst | (leeg) | Levering via achterdeur | (leeg) | (leeg) |
Artikel | A002 | Roggebloem | 20 | 1.45 |
Zonder child bands zou je artikelnummer, aantal en prijs ook tonen bij de tekstregel — met lege waarden. Dat ziet er rommelig uit. Met highlight conditions kun je kolommen verbergen, maar dat wordt snel onbeheersbaar.
De oplossing: DataBand + child bands
Je maakt twee layouts op het canvas:
┌──────────────────────────────────────────────┐
│ DataBand (Regels) │
│ Enabled: {Regels.RegelType == "Artikel"} │
│ [ArtikelNr] [Omschrijving] [Aantal] [Prijs]│
├──────────────────────────────────────────────┤
│ ChildBand1 │
│ Enabled: {Regels.RegelType == "Tekst"} │
│ [Omschrijving — volledige breedte, cursief]│
└──────────────────────────────────────────────┘ Bij elke rij in de dataset evalueert Stimulsoft de Enabled-expressie:
- Is het een artikelregel? → De DataBand wordt getoond (met alle kolommen)
- Is het een tekstregel? → De ChildBand wordt getoond (alleen omschrijving, volledige breedte)
Stap voor stap: child band instellen
Stap 1 — DataBand inrichten voor artikelregels
- Richt de DataBand in zoals je gewend bent: artikelnummer, omschrijving, aantal, prijs
- Ga naar het Eigenschappen-paneel van de DataBand
- Zoek de eigenschap Enabled en stel de expressie in op:
{Regels.RegelType == "Artikel"}
Stap 2 — Child band toevoegen
- Ga naar Invoegen in het lint en kies Child Band
- Plaats de child band direct onder de DataBand
- De child band hecht zich automatisch aan de DataBand erboven
Stap 3 — Child band inrichten voor tekstregels
- Voeg een tekstvak toe in de child band met
{Regels.Omschrijving}— laat het de volledige breedte beslaan - Pas de opmaak aan: cursief, eventueel een andere achtergrondkleur
- Stel de eigenschap Enabled van de child band in op:
{Regels.RegelType == "Tekst"}
Het resultaat
Bij het genereren toont het rapport:
A001 Tarwebloem 50 € 1.20 € 60.00
Levering via achterdeur
A002 Roggebloem 20 € 1.45 € 29.00 Elke regel krijgt de layout die past bij het type. Geen lege kolommen, geen rommelige highlight conditions.
Meerdere child bands
Je kunt meerdere child bands onder dezelfde databand plaatsen — bijvoorbeeld een derde layout voor een subtotaalregel of een korting. Elke child band heeft zijn eigen Enabled-expressie.
Samenvatting
- Een child band is een extra band onder de databand met een eigen layout
- De eigenschap Enabled bepaalt per rij of de band wordt getoond
- Gebruik child bands om verschillende regeltypen elk hun eigen layout te geven
- Dit vervangt complexe highlight conditions — schoner en beter onderhoudbaar
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