09 - Oefening Fout bij kopieren
Een klant belt met een probleem: na het kopiëren van een stickerlayout worden twee datumvelden niet meer getoond bij het afdrukken. In deze oefening analyseer je de oorzaak.
De situatie
De klant heeft de layout van Inslagsticker vriezer (31) gekopieerd naar Inslagvriezer sticker (32). Sticker 31 is een batchlabel en sticker 32 is een verkooporderregistratie-label.
Na het kopiëren meldt de klant: “De datums worden niet getoond bij het afdrukken van sticker 32.”
De layout (schematisch)
Zo ziet het ontwerp van sticker 31 eruit — twee tekstvakken naast elkaar:
┌────────────────────────────────────────────────┐
│ ┌─── Logo ─────┐ │
│ │(Bedrijfsnaam)│ │
│ └──────────────┘ │
│ │
│ ┌─ Text3 ───────────┐ ┌─ Text4 ─────────────┐ │
│ │ Inslag datum: │ │ {Format(Today)} │ │
│ │ T.H.T. diepvries: │ │ {Format(Today+365)} │ │
│ │ Partijnummer: │ │ {BatchLabelLine...} │ │
│ └───────────────────┘ └─────────────────────┘ │
│ │
│ ┌─ Barcode (GS1-128) ───────────────────────┐ │
│ │ ████████████████████████████████████████ │ │
│ └───────────────────────────────────────────┘ │
└────────────────────────────────────────────────┘ Text4 bevat drie regels in één tekstvak: twee datumvelden en een partijnummerverwijzing.
Wat je weet
- Sticker 31 werkt correct — alle velden worden getoond
- Sticker 32 is een kopie van de layout van sticker 31
- Sticker 31 is een batchlabel, sticker 32 is een verkooporderregistratie-label
De vraag
Waarom worden de datumvelden niet getoond op sticker 32?
Denk na voor je doorgaat.
Stop hier. Bedenk je antwoord voordat je verder scrolt.
Antwoord
Details
Het tekstvak combineert drie veldverwijzingen in één element: de partijcode en twee datumvelden. Na het kopiëren verwijst de partijcode naar een business object dat niet bestaat in sticker 32.
Stimulsoft evalueert het hele tekstvak als één expressie. Zodra één veldverwijzing in dat tekstvak een fout geeft (omdat het business object niet bestaat), faalt het volledige tekstvak. Het element wordt dan helemaal niet getoond — ook de datumvelden niet, hoewel die op zichzelf wél geldig zouden zijn.
De kernles: als je meerdere veldverwijzingen combineert in één tekstvak, is het tekstvak zo sterk als de zwakste schakel. Eén ongeldige verwijzing maakt het hele element onzichtbaar.
Oplossing: verwijder de ongeldige veldverwijzing (de partijcode) uit het tekstvak, of vervang die door de juiste verwijzing voor het business object van sticker 32.
Wat heb je geleerd in sessie 3?
Kijk of je deze vragen kunt beantwoorden zonder terug te bladeren:
- Hoe stel je de datumopmaak in via TextFormat?
- Wanneer gebruik je Format() in plaats van TextFormat?
- Wat is een expressie en hoe combineer je tekst met velden?
- Hoe bouw je een rapport op van secties naar velden?
- Wat doet Can Grow en wanneer zet je het aan?
- Waarom kan een ongeldige veldverwijzing andere velden in hetzelfde tekstvak onzichtbaar maken?
In sessie 4 ga je aan de slag met master-detail relaties, geneste databanden en groepering.
< Vorige: Oefening tekstveldgedrag | Volgende: Master-detail relaties >