image - SSRS : Report loading external images, 找不到图片,可以隐藏图片控件吗

标签 image reporting-services hide

我的 SSRS 报表从报表服务器上的客户编号特定文件夹中为每个客户加载 Logo 图像。

我写了一个表达式,根据客户编号形成图像的 URL。

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

我能够让这个工作,但我面临的问题是,当特定客户没有图像时,我的报告会显示一个红色的 X 标记来代替 Logo 。在这种情况下,我希望隐藏图像控件本身。有什么想法吗????

另一个肮脏的解决方案是确保每个客户特定的文件夹都有指定的图像!即使没有客户的 Logo ,我也会放置一个可能是方形像素尺寸的空白.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())

关于image - SSRS : Report loading external images, 找不到图片,可以隐藏图片控件吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2688826/

相关文章:

mysql - 使用 TinyMCE 发布的图像有大小限制吗?

iphone - iOS - 如何知道 iCloud 照片传输功能是否启用

reporting-services - SSRS 数据驱动订阅中没有电子邮件选项

asp.net - 替代 SSRS 前端

jquery - 如果YouTube嵌入src为空,则jQuery隐藏div

html - 在屏幕尺寸上隐藏 div id

ios - 生成PDF时如何将图像Url转换为pdf?

python - 如何正确地将base64字符串转换为图像文件?

reporting-services - 按数据集或 tablix 筛选

python - 有没有办法在 Python 中更改有效的进程名称?