05 - Systeemvariabelen
Je kunt nu berekeningen maken met data uit het business object. Maar sommige informatie komt niet uit de data — het paginanummer, de afdruktijd of het totaal aantal pagina’s zijn eigenschappen van het rapport zelf. Daarvoor biedt Stimulsoft systeemvariabelen.
Wat zijn systeemvariabelen?
Systeemvariabelen zijn ingebouwde waarden die Stimulsoft automatisch bijhoudt tijdens het genereren. Ze staan niet in het woordenboek bij de business objects, maar in een apart onderdeel: Variabelen (of Variables).
De belangrijkste systeemvariabelen
| Variabele | Wat het bevat | Typisch gebruik |
|---|---|---|
PageNumber | Huidig paginanummer | PageFooter: “Pagina 2” |
TotalPageCount | Totaal aantal pagina’s | PageFooter: “Pagina 2 van 5” |
Today | Datum van vandaag | ReportTitle: afdrukdatum |
Time | Huidige tijd | ReportTitle: afdruktijd |
ReportName | Naam van het rapport | PageFooter: rapportnaam |
Line | Rijnummer in de databand | DataBand: regelnummer |
LineThrough | Doorlopend rijnummer over groepen | DataBand: totaal regelnummer |
Paginanummering instellen
De meest voorkomende toepassing: een paginanummer in de PageFooter.
Alleen het paginanummer:
Pagina {PageNumber} Paginanummer met totaal:
Pagina {PageNumber} van {TotalPageCount} Plaats dit tekstvak in de PageFooter zodat het op elke pagina verschijnt.
Afdrukdatum en -tijd
Een afdrukdatum of -tijd in de koptekst toont wanneer het rapport is gegenereerd:
Afgedrukt op: {Format("{0:dd-MM-yyyy HH:mm}", Today)} Dit is handig als een rapport meerdere keren wordt gegenereerd — de ontvanger ziet welke versie het meest recent is.
Waarschuwing: Today is niet het moment van printen
In sessie 1 heb je geleerd dat ReflexBlue bij het printen eerst een pakket samenstelt en dat het rapport pas later wordt gegenereerd. De functie Today geeft de datum terug van het genereermoment, niet het moment waarop de gebruiker op de printknop klikte.
Dit heeft twee gevolgen:
1. Verschil tussen klikmoment en genereermoment - Tussen het klikken en het genereren kan tijd zitten (seconden tot minuten). Als de printerservice een wachtrij heeft of het genereren rond middernacht valt, kan Today een andere datum teruggeven dan verwacht.
2. Historie: elke keer een andere waarde - Afgedrukte rapporten en labels worden historisch opgeslagen in ReflexBlue. Elke keer dat je een rapport opnieuw bekijkt of opnieuw print vanuit de historie, wordt het opnieuw gegenereerd. Today wordt dan opnieuw bepaald en geeft de huidige datum — niet de oorspronkelijke afdrukdatum.
Voorbeeld: je plaatst Today.AddDays(30) als THT-berekening op een label. Op 1 maart wordt het label afgedrukt met THT 31 maart. Als iemand op 15 april dat label opnieuw bekijkt vanuit de historie, toont het THT 15 mei.
Vuistregel: gebruik Today niet voor datums die inhoudelijk betekenis hebben. Gebruik in plaats daarvan een datumveld uit het business object (zoals een productiedatum, leverdatum of aanmaakdatum). Die waarde is vast en verandert niet bij opnieuw genereren.
Acceptabel gebruik van Today:
- Printdatum weergave (“Afgedrukt op: …”)
- Paginanummer met datum in een footer (informatief, niet juridisch)
Niet acceptabel:
- THT-berekeningen (
Today.AddDays(...)) - Factuurdatum
- Leverdatum
- Elke datum die op het document een juridische of logistieke betekenis heeft
Regelnummers in de databand
De variabele Line telt het rijnummer binnen de huidige databand. In combinatie met groepering start het tellen bij elke groep opnieuw.
{Line}. {Lines.Description} Resultaat:
1. Tarwebloem
1. Roggebloem
1. Speltbloem Wil je een doorlopend nummer over alle groepen heen? Gebruik LineThrough.
Samenvatting
- Systeemvariabelen zijn ingebouwde waarden die Stimulsoft automatisch bijhoudt
- Gebruik
PageNumberenTotalPageCountvoor paginanummering in de PageFooter - Gebruik
Todayvoor de afdrukdatum - Gebruik
Linevoor regelnummers in een databand - Systeemvariabelen combineer je met statische tekst en
Format(), net als gewone veldverwijzingen
Meer in deze rubriek
- 01 - Geavanceerde Expressies
- 02 - Oefening Geavanceerde Expressies
- 03 - Berekende Velden
- 04 - Oefening Berekeningen
- 05 - Systeemvariabelen
- 06 - Oefening Systeemvariabelen
- 07 - Subrapporten
- 08 - Oefening Subrapporten
- 09 - Afdrukken en Exporteren
- 10 - Oefening Exporteren
- 11 - Factuur Bouwen
- 12 - Oefening Factuur