[SSRS] Utiliser un DateTimePicker avec du MDX

Question intéréssante s’il en est: comment à la fois fournir la rapidité de requêtage d’un cube SSAS couplé à un filtrage intuitif à l’aide des DateTimePicker?

Il est recommandé partout de mettre des TextBox avec un masque égal à la Value ou la Name Column de la dimension temps, mais personnellement je préfère utiliser des composants sympas quand ils sont présents.

Voila ma solution, si vous en avez d’autres n’hésitez pas!

1) Création des membres dans la requête

J’ai pris à dessein une requête enfantine pour saisir l’idée. On se crée d’abord deux membres calculés, qui vont récupérer la valeur saisie en paramètre -un DateTime issu du DateTimePicker – et la caster en String.

WITH MEMBER D1 AS IIF(@FROM=’NULL‘,VBA!Format(VBA!Now(), »yyyyMMdd »),VBA!Format(@FROM, « yyyyMMdd« )) MEMBER D2 AS IIF(@FROM=’NULL‘,VBA!Format(VBA!Now(), »yyyyMMdd »),VBA!Format(@TO, « yyyyMMdd« ))

Comme vous le constatez, si la valeur fournie est égale à ‘NULL’ on met la date du jour. Ce petit trick pour feinter l’éditeur de paramètres de RS et récupérer quand même les méta-données du ResultSet.


2) Ecriture de la requête elle même

Comme je vous l’ai annoncé, elle est très simple, une projection sur un axe d’une mesure. Le filtrage fait appel aux deux membres calculés (mes KeyColumns sont au format YYYYMMDD dans ma Dimension temps)

SELECT {[Measures].[NB CLAIMS]} ON 0,
NON EMPTY{[CLAIM_TYPE].[CLAIM_TYPE].Members}
ON 1
FROM [CLAIMS]
WHERE (STRTOMEMBER(‘[TIME_CLAIM_OPENED].[Y-Q-M-D].[DAY].&[‘+D1+’]‘) :STRTOMEMBER(‘[TIME_CLAIM_OPENED].[Y-Q-M-D].[DAY].&[‘+D2+’]‘))

Ensuite il suffit de construire le rapport, puis de binder les paramètres.

3) Binding des paramètres

Pour cela un petit tour dans les Report Variables pour modifier les deux paramètres, FROM et TO. Ils seront de type DateTime avec une DefaultValue égale à =Today.

4) Le résultat:


Bon reporting!
A bientôt!

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s