04 - Oefening Expressies
Je hebt geleerd hoe je tekst combineert met veldverwijzingen en hoe je berekeningen en voorwaarden schrijft. Nu ga je het zelf toepassen.
Het business object
Gebruik het volgende business object voor de denkvragen:
Order
├── OrderNummer: 10042
├── Datum: 2024-03-15
├── Klant
│ ├── Naam: Bakkerij de Zon
│ └── Plaats: Utrecht
└── Regels
├── Regel
│ ├── Omschrijving: Tarwebloem
│ ├── Aantal: 50
│ └── PrijsPerStuk: 1.20
└── Regel
├── Omschrijving: Roggebloem
├── Aantal: 20
└── PrijsPerStuk: 1.45 Vraag 1 — Combineren
Schrijf de inhoud van een tekstvak dat het volgende toont:
Order 10042 — Bakkerij de Zon Denk na voor je doorgaat naar het antwoord.
Vraag 2 — Berekenen
Schrijf een expressie die het regeltotaal berekent (aantal × prijs per stuk). Welke waarden levert deze expressie op voor de twee regels?
Denk na voor je doorgaat naar het antwoord.
Vraag 3 — Voorwaarde
Je wilt in de databand een kolom “Opmerking” toevoegen. Als het aantal groter is dan 30, moet er “Groot” staan. Anders moet de kolom leeg blijven. Schrijf de expressie.
Denk na voor je doorgaat naar het antwoord.
Vraag 4 — Opmaak in een gecombineerd tekstvak
Je wilt een tekstvak dat het volgende toont:
Leverdatum: 15 maart 2024 Een collega heeft dit geprobeerd:
Leverdatum: {Order.Datum} En de TextFormat van het tekstvak ingesteld op dd MMMM yyyy. In het afdrukvoorbeeld verschijnt:
Leverdatum: 2024-03-15T00:00:00 Wat gaat er mis? En hoe los je het op?
Denk na voor je doorgaat naar het antwoord.
Stop hier. Beantwoord alle vier de vragen voordat je verder scrolt.
Antwoorden
Vraag 1
Details
Antwoord: Combineren
Order {Order.OrderNummer} — {Order.Klant.Naam} Dit tekstvak combineert statische tekst (“Order”, “—”) met twee veldverwijzingen.
Vraag 2
Details
Antwoord: Berekenen
{Order.Regels.Aantal * Order.Regels.PrijsPerStuk} | Rij | Aantal | PrijsPerStuk | Resultaat |
|---|---|---|---|
| 1 | 50 | 1.20 | 60.00 |
| 2 | 20 | 1.45 | 29.00 |
Vraag 3
Details
Antwoord: Voorwaarde
{IIF(Order.Regels.Aantal > 30, "Groot", "")} | Rij | Aantal | Resultaat |
|---|---|---|
| 1 | 50 | Groot |
| 2 | 20 | (leeg) |
De lege string "" zorgt ervoor dat er niets wordt getoond als de voorwaarde niet waar is.
Vraag 4
Details
Antwoord: Opmaak in een gecombineerd tekstvak
Het tekstvak bevat statische tekst ("Leverdatum: ") gecombineerd met een veldverwijzing. Daardoor ziet Stimulsoft de hele inhoud als tekst. De TextFormat-instelling dd MMMM yyyy wordt genegeerd, omdat de waarde Leverdatum: 2024-03-15 niet als datum geïnterpreteerd kan worden.
Oplossing: gebruik Format() in de expressie zelf:
Leverdatum: {Format("{0:dd MMMM yyyy}", Order.Datum)} Resultaat: Leverdatum: 15 maart 2024
Vuistregel: TextFormat werkt alleen bij een tekstvak dat uitsluitend een veldverwijzing bevat. Zodra je tekst en velden mengt, regel je de opmaak met Format().
Hands-on: probeer het in de designer
Als je tijd hebt, open een gekopieerd rapport en:
- Voeg een tekstvak toe met een gecombineerde tekst + veldverwijzing
- Voeg een tekstvak toe in de databand met een berekening (vermenigvuldiging)
- Schakel naar Afdrukvoorbeeld en controleer de resultaten
< Vorige: Tekstvakken met expressies | Volgende: Een pakbon bouwen >