通过SSRS帮助从网站使用(外部图像)

时间:2010-08-11 17:20:41

标签: sql-server reporting-services

我有一个小网站,用于维护用户数据。我在表中维护用户数据并在服务器上存储像/images/users/user_id.jpeg这样的图像。

我在asp.net页面中使用ReportViewer控件来显示Web应用程序中SSRS的报告。

现在,用户想要报告,他们可以在报告中看到用户图像,以便他们可以将其导出为pdf并打印出来。

在报告中,我尝试使用完整和相对网址的html图像标记,并选择呈现HTML,但它不起作用。此外,我尝试使用外部网址在工具箱中的图像控制,这似乎现在正在工作。 有人可以帮我解决这个问题或指导我一些有用的链接。 谢谢大家,

3 个答案:

答案 0 :(得分:1)

如果您可以在报表设计器中查看预览中的图像,那么设置报表会让您的用户更容易看到图像。

  1. 确保您有一张可以转到其中一张图片的工作网址。通过将URL粘贴到浏览器的地址栏中进行测试,并确保图像显示在浏览器中。

  2. 从报告中删除现有图片。将新图像插入到用于显示表格的报表对象(通常是列表或表格)中。 (这应该是旧图像的位置。)

  3. 指定Web作为图像源,并输入您的工作URL作为图像的URL。

  4. 在报表设计器中预览报表。您应该能够在报告中正确显示图像(使用硬编码的URL)。

  5. 假设所有图像都存储在服务器的同一目录中,请切换到报表设计器的布局选项卡,然后单击图像对象。在“属性”窗口中,value属性应为加密编码的URL。

  6. 点击Value属性下拉菜单中的<Expression...>选项。编辑表达式,使其显示=" 您的网址,不包含文件名 " & Fields! 您的图片文件名数据字段名称 .Value

  7. 在报表设计器中预览报表。您应该能够在报告中看到正确显示数据的相应图像。

  8. 如果到目前为止一切正常,请部署报告并尝试在报告管理器中查看。您应该能够在报告中看到正确显示数据的相应图像。

  9. 此时,您的用户现在应该能够看到报告图像。

答案 1 :(得分:1)

我尝试了一切!它不适用于BIDS,Web浏览器和Winform Report Viewer控件。

我最终对图像进行了硬编码,但仍然无效:

="http://MyServer/Reports_SQL2008/Pages/Resource.aspx?ItemPath=%2fProjectReporting%2fBRAND_Logo.png&RetrieveResource=True"

我很确定问题是与Active Directory组策略传播有关。如果你遇到同样的问题,我建议你过夜,并尝试了你能想到的一切:

  1. 在SSRS配置中设置无人参与执行帐户使用密码不会过期的服务帐户
  2. enter image description here

    1. 权限(图片和网站设置):
    2. enter image description here

      1. 可以成功导航到图像,但它仍然不会显示在报告中。
      2. enter image description here

        1. 正确设置SSRS图像属性,等号和网址用双引号括起来,即: =“url”
        2. enter image description here

          1. 甚至清除浏览器缓存并尝试使用其他浏览器等

          2. 无论如何,第二天早上我尝试了硬编码路径,现在这个动态网址也有效:

            http://MyServer/Reports_SQL2008/Pages/Resource.aspx?ItemPath=%2fProjectReporting%2f“&amp; First(Fields!Brand.Value,”ClientAndBrandByAccount“)&amp;”_Logo.png&amp; RetrieveResource = True“

            RDL文件中的XML是HTML编码的,如下所示:

            <Image Name="Logo">
             <Source>External</Source>
              <Value>="http://MyServer/Reports_SQL2008/Pages/Resource.aspx?ItemPath=%2fProjectReporting%2f" &amp; First(Fields!Brand.Value, "ClientAndBrandByAccount") &amp; "_Logo.png&amp;RetrieveResource=True"</Value>
            

            我试图让Alex Z显示动态服务器URL,尽管我必须使用这个Replace代码:

            =Replace(Globals!ReportServerUrl,"/ReportServer_","/Reports_") & "/Pages/Resource.aspx?ItemPath=%2fProjectReporting%2f" & First(Fields!Brand.Value, "ClientAndBrandByAccount") & "_Logo.png&RetrieveResource=True"
            

答案 2 :(得分:0)

使用表达式和全局变量Globals!ReportServerUrl

创建相对URL

= Globals!ReportServerUrl +&#34;您的图片路径&#34;