[SSRS] Afficher une image alternative si l’image n’existe pas

Bon question assez demandée, et pourtant assez peu référencée donc je donne ma solution – qui est, n’en doutez pas, perfectible.

Bon d’abord on va dans les propriétés du rapport ajouter du beau – sic – VB bien crade. Cette fonction homemade va simplement faire une webrequest sur l’URL de l’image. Si celle ci se déroule bien on renvoie true, false dans tous les autres cas.
Public Function ImageExists(ByVal imgPath As String) As Boolean
Dim netCall As System.Net.HttpWebRequest = _
System.Net.HttpWebRequest.Create(imgPath)
netCall.Credentials = System.Net.CredentialCache.DefaultCredentials
netCall.Timeout = 1000
Dim resp As System.Net.HttpWebResponse = Nothing
Try
resp = netCall.GetResponse()
If resp.StatusCode = System.Net.HttpStatusCode.OK
Then Return true
Catch ex As System.Exception
Return false
End Try
End Function

Il ne reste plus qu’à utiliser ce « magnifique » code dans l’expression Source, comme ici:

=IIf(Code.ImageExists(Fields!ImageURI.Value.ToString())
,Fields!ImageURI.Value
,http://www./.../noImageAvailable.jpg)

Voilà le résultat, à bientôt!

PS: bon ici c’est pour un accès par URL, pour un accès en local un File.Exists aurait suffi. Dans le cas d’une image BLOB ça se traite en SQL!

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