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à!!