forEach - løkker
forEach brukes for å gjenta innhold for hvert element i en liste.
Dette er nyttig når du skal vise informasjon om flere elementer som perioder eller ytelser.
Bruk i ulike scopes
I outline - for å gjenta avsnitt
outline {
forEach(perioder) { periode ->
title2 {
text(bokmal { +"Periode fra " + periode.fom.format() })
}
paragraph {
text(
bokmal { +"I denne perioden får du " + periode.beloep.format() + "." }
)
}
}
}
Kombinere med betingelser
showIf inne i forEach
list {
forEach(vedtak) { enkeltVedtak ->
item {
text(bokmal { +enkeltVedtak.beskrivelse })
showIf(enkeltVedtak.erKlageUnderBehandling) {
text(bokmal { +" (klage under behandling)" })
}
}
}
}
| Om du bruker showIf for å filtrere verdier, vurder om du kan flytte denne forretnings-logikken ut av brevet. |
Nøstede løkker
Du kan nøste forEach for hierarkiske data:
forEach(beregninger) { beregning ->
title2 {
text(bokmal { +"Beregning: " + beregning.navn })
}
paragraph {
text(bokmal { +"Poster:" })
list {
forEach(beregning.poster) { post ->
item {
text(bokmal { +post.beskrivelse + ": " + post.beloep.format() })
}
}
}
}
}
Tomme lister
Hvis listen er tom, produseres ingen innhold.
Bruk showIf med isEmpty() eller isNotEmpty() for å håndtere tomme lister:
showIf(inntekter.isNotEmpty()) {
paragraph {
text(bokmal { +"Vi har registrert følgende inntekter:" })
list {
forEach(inntekter) { inntekt ->
item {
text(bokmal { +inntekt.kilde + ": " + inntekt.beloep.format() })
}
}
}
}
}.orShow {
paragraph {
text(bokmal { +"Du har ingen registrerte inntekter." })
}
}
| Husk å ta stilling til hva som skal skje om listen listen er tom, slik at innholdet rundt fortsatt gir mening dersom listen er tom. |