Home / Reporting Services / SSRS Sparkline NU en TREND

SSRS Sparkline NU en TREND

 De  SSRS sparkline is een krachtig grafiekje dat in een oogopslag een trend kan laten zien. Google Finance gebruikt de sparkline bijvoorbeeld om de koers van een aandeel over de dag te tonen terwijl het getal dat je ziet de real-time koers toont. Dat is ook wat je vaak wilt laten zien, de laatste stand van een bepaalde waarde in combinatie met een trendlijn van de afgelopen periode. Dit artikel laat zien hoe je een dergelijke omzt kunt realiseren.

Een sparkline gebruik je meestal binnen een cel, hoewel gebruik erbuiten ook mogelijk is. Een sparkline kun je alleen op groepsniveau binnen een tabel/matrix gebruiken en niet op de detailregel. Stel dat je de omzet Y-T-D in een trendlijn wilt tonen maar als getal in de tabel wil je alleen de omzet van de laatste maand tonen. Hoe ga je dit oplossen?

In eerste instantie zou je denken een filter te zetten op de tabel waarbij je de omzet van de laatste maand filtert. Dit werk niet omdat je dan ook de omzet van de voorliggende maanden filtert en daardoor de sparkline niet goed werkt. Een tabel in een tabelcel werkt ook niet goed. Door onderstaande stappen te volgen is een trendlijn zo gerealiseerd:

Stap 1 – Dataset aanmaken

Maak een dataset aan met de volgende data:

SELECT 50 AS Omzet, 1 AS Maand, 'Sjaak' AS Verkoper
UNION
SELECT 100 AS Omzet, 2 AS Maand, 'Jan' AS Verkoper
UNION
SELECT 100 AS Omzet, 2 AS Maand, 'Sjaak' AS Verkoper
UNION
SELECT 150 AS Omzet, 3 AS Maand, 'Sjaak' AS Verkoper
UNION
SELECT 300 AS Omzet, 4 AS Maand, 'Sjaak' AS Verkoper
UNION
SELECT 600 AS Omzet, 5 AS Maand, 'Jan' AS Verkoper
UNION
SELECT 900 AS Omzet, 6 AS Maand, 'Sjaak' AS Verkoper
UNION
SELECT 900 AS Omzet, 7 AS Maand, 'Sjaak' AS Verkoper
UNION
SELECT 150 AS Omzet, 8 AS Maand, 'Sjaak' AS Verkoper
UNION
SELECT 385 AS Omzet, 9 AS Maand, 'Sjaak' AS Verkoper
UNION
SELECT 100 AS Omzet, 10 AS Maand, 'Sjaak' AS Verkoper
UNION
SELECT 506 AS Omzet, 11 AS Maand, 'Sjaak' AS Verkoper
UNION
SELECT 92 AS Omzet, 12 AS Maand, 'Sjaak' AS Verkoper
 
ORDER BY 2,3

Testdata invoeren

Stap 2 – Tabel invoegen met sparkline

Voeg een tabel in in SSRS. Maak een groep aan “Verkoper”, een kolom “Omzet” en een kolom trend. In de laatste komt desparkline. Verwijder de detailgroep.  Voeg een sparkline in de laatste cell toe met de volgende instellingen:

sparkline_tutorial_07

Je SSRS rapport ziet er zo uit:

SSRS Sparkline

De groeperingen zien er zo uit:

sparkline_tutorial_03

 

Als je nu een preview doet van het rapport dan krijg je het volgende resultaat:

sparkline_tutorial_04

Wat we nu willen is alleen de omzet tonen van december maar de trend YTD.

Stap 3 – Expressie op tabelcel

De truuk is nu om de filter op de omzetwaarde in te stellen. Daarbij filteren we alle maanden voor december weg. De filter is dan alleen van toepassing op de omzetcell en niet op de trend. Uiteraard is dit nu hard-coded voor december (=12) maar dit kun je helemaal flexibel inregelen. Let op dat de SUM() om de expressie heen moet en niet andersom:

=SUM(IIF(Fields!Maand.Value<12,0,Fields!Omzet.Value))

Als je nu weer een preview doet:

sparkline_tutorial_05

Dit klopt ook met de dataset, immers alleen Sjaak heeft een omzet van 92 euro in december en Jan niet:

sparkline_tutorial_06

 

Op deze manier zie je een mooie trend terwijl de stand de laatste waarde toont.

 

 

Check Also

prevent-divide-by-zero-ssrs

Prevent Divide by Zero in SSRS

In a previous post, I wrote about how to prevent the divide by zero issues …

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *