代码之家  ›  专栏  ›  技术社区  ›  Numan

SSRS:报告加载外部图像,未找到图像,是否可以隐藏图像控件

  •  4
  • Numan  · 技术社区  · 16 年前

    我写了一个表达式,以形成我的网址形象的基础上,客户号码。

    ..."http://localhost/images/" + iCustomerNumber.ToString() + "/logo.gif"
    

    另一个肮脏的解决方案将是确保每个客户特定的文件夹有指定的图像!即使没有客户的徽标,我也会放置一个空白的.gif或一个可能是正方形像素的spacer.gif!。

    1 回复  |  直到 15 年前
        1
  •  5
  •   Chris Latta    16 年前

    您可以尝试添加一些自定义代码,并在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())
    
    推荐文章