簡體   English   中英

SSRS:報告加載外部圖像,未找到圖像,我可以隱藏圖像控件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM