Als je een rapportage in Reporting Services maakt wil je deze rapportage vaak naar Excel kunnen exporteren. Reporting Services vernaggeld nogal eens wat aan de opmaak. Zo worden er vaak kolommen ingevoegd die er eigenlijk niet horen en krijg je vaak afrondingsproblemen.
Probleem 1: kolommen worden ingevoegd
Na je een rapportage vanuit je Report Manager naar Excel hebt geexporteerd wil je daar vaak berekening mee gaan doen. Het probleem is dat Reporting Services vaak kolommen invoegt zodat het lastig is berekeningen toe te passen.
De oorzaak hiervan is het gebruik van Report Items, bijvoorbeeld in de header van je rapport. Je kunt bijvoorbeeld een Rapporttitel in je header hebben staan.
Je zult zien dat Excel precies op de plek waar het Report Item eindigt de kolommen gaat splitsen. Zo zal in bovenstaand voorbeeld een extra kolom worden ingevoegd op de plek waar de pijl staat.
De oplossing is om ervoor te zorgen dat het einde van de Report Items precies op de splitsing van een kolom vallen van bijvoorbeeld een tabel, net als in de afbeelding hieronder.
Probleem 2: ik krijg meer decimalen achter de comma dan ik heb opgegeven
In het “format”-veld van een cel kun je aangeven hoe de output van een cel moet zijn. Zo zul je ‘c’ gebruiken voor de output naar een euro-teken (currency), D2 voor 2 decimalen en P2 voor een percentage met 2 cijfers. Stel dat je P2 invult bij een bepaalde cel en de waarde van deze cel is 0,4222 dan zal de output zijn “42.22%”, we hebben immers opgegeven dat we 2 cijfers achter de comma wilden. Als we het resultaat vervolgens naar Excel exporteren zullen we vaak opmerken dat er opeens 3 cijfers achter de comma staan! Dit komt omdat Excel niet kijkt naar de opgegeven P2 maar naar de uitkomst van de dataset.
De oplossing is om de cel of in de dataset te Rounden. Stel dat we het getal met 2 cijfers achter de comma willen zullen we 4 cijfers achter de comma moeten Rounden (anders krijg je 0,42 en rond hij af naar 42%). Rounden doe je met de volgende Expressie: =Round(Fiels!Omzet.Value,4)
Uiteraard kun je dit ook in je dataset doen. Je moet alleen oppassen dat je geen afrondingsverschillen krijgt als je dit getal vervolgens gaat gebruiken bij berekeningen.