BI experience

Reporting Services : astuces

| 0 Commentaires

J’utilise pas mal SSRS ces derniers jours…Je voudrais juste vous faire part de quelques astuces :

Au niveau des couleurs :

  • on peut mettre une condition à l’affichage de la couleur d’une case : exemple Iif(Field!monchamp.value<1000, »Red », »blue). Cette expression est à mettre au niveau des propriétés de la case > BackgroundColor > Expression
  • On peut aussi mettre une couleur une ligne sur deux pour plus de lisibilité : Iif(RowNumber(Nothing) Mod 2, « blue »)

Au niveau des dates :

  • Si la date est déjà sous le format date mais que ce format ne vous plait pas. utiliser : FormatDatetime(Field!maDate.value,2) 2 étant le type de format DD/MM/YY
  • Si la date est sous le format varchar on fait appelle à la fonction texte. Imaginons que la date soit : « YYYYMMDD » et qu’on veut l’afficher « DD/MM/YY », voilà ce qu’on peut faire : RIGHT(Field!monchamp.value,2)& »/ »&LEFT(RIGHT(Field!monchamp.value,4),2) & »/ »RIGHT(LEFT(Field!monchamp.value,4),2)

Pour la mise en page du rapport :

  • mettre au format paysage : Ouvrez votre rapport. Dans le menu SSRS allez dans rapport>propriété du rapport>mise en page> et inverser hauteur et largeur. Puis attention régler votre marge pour voir si tout contient dans une page A4.
  • forcer SSRS à générer tout le rendu sur une seule page : il suffit de mettre le paramètre « InteractiveSize » à « 0 ;0 ».

Avec SSRS on peut aussi gérer les langues d’une case:

avec un Iif(…) et le champ User!Language. Vous aurez plus d’infos sur ce site technet.microsoft.com vous pourrez consulter les langues prises en compte.

Pour les COUNT conditionnels :

=COUNTDISTINCT(Iif(Fields!new_disponibilite.Value<Today(), Fields!new_collaborateurid.Value,0))

Cela permet de compter le nombre de collaborateurs avec une condition sur la date

Gérer les quotients null

Je pense que plein de personnes ont déjà tapé : IIF(Fields!ODO.Value <> 0, (Fields!MAINT.Value + Fields!SERVICE.Value + Fields!TYRES.Value) / Fields!ODO.Value, 0)

Mais bien sûr ça n’a pas fonctionné…Voilà l’astuce :
=IIF(Fields!ODO.Value <> 0, (Fields!MAINT.Value + Fields!SERVICE.Value + Fields!TYRES.Value) / IFF(Fields!ODO.Value <> 0, Fields!ODO.Value, 1), 0)

Utiliser un Dataset différent du dataset précisé dans un tableau :

Voici une astuce tirée par les cheveux je trouve :
Si dans un de vos tableaux, vous avez un dataset1 et que dans l’une des cellules de votre tableau, vous voulez utiliser un dataset2, il faudra utiliser un fonction du type :

max(IIF(Fields!FirstName.Value= »Robert », Fields!LastName.Value, nothing), « nomdudataset »)

En gros dans cette fonction, on a utilisé la fonction MAX mais elle est utilisée de manière détournée, dans le sens où elle ne récupérera que la ligne où le FirstName sera égal à « Robert » et élimera les autres qui seront associés à nothing.

Voilà!!

Laisser un commentaire

Champs Requis *.

*