Klant: Peter Peters (Wopal B.V.) Datum: 23 maart 2026 Tags: rdlc, report-extension, mcp, layout-spec, extract, round-trip, 4ps, wopal
Zes aanpassingen aan het inkooporder rapport van Wopal B.V.: ordernummer verplaatsen, kolommen toevoegen aan de inkoopregelentabel, en contactpersoon automatisch vullen op basis van aflevertype. De RDLC layout is 700KB XML, het rapport gebruikt een SetData/GetData patroon met 63+ indices om headervelden door te geven.
We moesten het ordernummer verplaatsen in de header. Door raw XML te greppen identificeerden we ReferenceText5 / PurchRcptHdrYourRef5 met GetData(1,1) als het ordernummer. Na deployen bleek dit de leveranciernaam te zijn (BuyFromAddr1). Het echte ordernummer was SalesHdrShpmtDt met GetData(16,1).
Impact: Hele debug-cyclus (deploy, test, onderzoek, revert, opnieuw zoeken, opnieuw deployen). Kostte ~30 minuten extra.
Met bc_extract_layout_spec: De declaratieve spec had direct getoond welk textbox welke binding heeft. Geen gokwerk nodig.
Het rapport had twee textboxen met caption "Contactpersoon:" op verschillende hoogtes (3.13cm en 4.43cm), elk met een andere databinding. Bij greppen door 700KB XML was dit niet zichtbaar. Pas na testen rapporteerde de klant dubbele velden.
Impact: Extra test-fix cyclus.
Met bc_extract_layout_spec: Alle header textboxen met hun captions en bindings in een overzichtelijke lijst. Duplicaten direct zichtbaar.
Het ShipToPhone veld bleef zichtbaar in de afleveradressectie ook als er geen contactpersoon was, wat een onbegrijpelijk telefoonnummer op het rapport opleverde.
Impact: Extra fix nodig.
Met layout spec: De relatie tussen velden in de spec maakt het makkelijker om visibility-afhankelijkheden te reviewen voordat je deployt.
De 700KB XML vereiste meerdere subagent-rondes met grep, elk met 20-30 regels context. Het opbouwen van een mentaal model van het rapport kostte ~5 subagent-calls alleen al voor de initiële analyse.
Met bc_parse_rdlc / bc_extract_layout_spec: Eén call geeft de volledige structuur in compact, leesbaar formaat.
De toolkit kon via de geparsede 4PS symbolen direct zien dat "Name Purchaser" en "Contact Person Name" FlowFields zijn. Hierdoor werd CalcFields meteen correct toegepast, wat normaal pas bij het testen als lege waarde zou opvallen.
Toen de contactpersoon bij projectlocatie leeg bleek, kon de toolkit de volledige dataketen traceren: ProjectPrincipal."Contact Person No." (stored field, alleen gevuld via OnValidate) → CalcFormula van het FlowField → fallback via Customer."Primary Contact No.". Dit leidde tot een robuuste fallback-keten in de code.
De RDLC Layout Spec Round-Trip (bc_extract_layout_spec → wijzig spec → bc_generate_report_extension) had de grootste fout (verkeerd textbox) en de meeste extra debug-cycli voorkomen. De belangrijkste winst:
Dit is het sterkste bewijs tot nu toe dat de RDLC tooling direct tijdwinst oplevert bij klantcases.
rdlc, layout-spec, extract, round-trip, verkeerd textbox, getdata, setdata, dubbele velden, 700kb xml, report extension, mcp server, wopal, inkooporder