[英]SSRS: Report loading external images, image not found, can I hide the image control
我的SSRS報告從報表服務器上的客戶編號特定文件夾中加載每個客戶的徽標圖像。
我寫了一個表達式,根據客戶編號形成我的圖像URL。
..."http://localhost/images/" + iCustomerNumber.ToString() + "/logo.gif"
我能夠使這個工作,但我面臨的問題是,當一個特定的客戶沒有圖像時,我的報告顯示一個紅色的X標記代替徽標。 在這種情況下,我希望隱藏圖像控件本身。 有什么想法嗎????
另一個臟的解決方案是確保每個客戶特定文件夾都有指定的圖像! 即使客戶沒有徽標,我也會在尺寸上放置一個可能是正方形像素的blank.gif或spacer.gif!
您可以嘗試添加一些自定義代碼,並在Image.Value屬性中使用它來加載默認圖像,如果沒有找到圖像:
Public Function GetImage(ByRef CustomerNumber As String) As String
' Customer image
Dim ImageCustomerURL As String
ImageCustomerURL = "http://localhost/images/" + CustomerNumber + "/logo.gif"
' Default Image if customer image does not exist
Dim ImageDefaultURL As String
ImageDefaultURL = "http://localhost/images/default.gif"
' Create a web request to see if customer image exists
Dim m_Req As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(ImageCustomerURL)
Try
Dim HttpWResp As System.Net.HttpWebResponse = CType(m_Req.GetResponse(), System.Net.HttpWebResponse)
If HttpWResp.StatusCode = System.Net.HttpStatusCode.OK
Return ImageCustomerURL
Else
Return ImageDefaultURL
End If
Catch ex As System.Net.WebException
If ex.Status = System.Net.WebExceptionStatus.ProtocolError Then
Return ImageDefaultURL
End If
End Try
Return ImageDefaultURL
End Function
然后你的Image.Value屬性表達式是:
=Code.GetImage(iCustomerNumber.ToString())
編輯:設置Visibility.Hidden屬性而不是使用默認圖像
好吧,我認為擁有一個默認圖像而不是一個空白區域可能更好,但它確實是同一個想法:
Public Function HideImage(ByRef CustomerNumber As String) As Boolean
' Customer image
Dim ImageCustomerURL As String
ImageCustomerURL = "http://localhost/images/" + CustomerNumber + "/logo.gif"
' Create a web request to see if customer image exists
Dim m_Req As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(ImageCustomerURL)
Try
Dim HttpWResp As System.Net.HttpWebResponse = CType(m_Req.GetResponse(), System.Net.HttpWebResponse)
If HttpWResp.StatusCode = System.Net.HttpStatusCode.OK
Return False
Else
Return True
End If
Catch ex As System.Net.WebException
If ex.Status = System.Net.WebExceptionStatus.ProtocolError Then
Return True
End If
End Try
Return True
End Function
然后您的Visibility.Hidden屬性表達式為:
=Code.HideImage(iCustomerNumber.ToString())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.