如何在服务器上运行的 SSRS 报告中显示网站中的图像

问题描述 投票:0回答:3

我有一个小型网站,我在其中维护用户数据,并将用户数据维护在一个表中,该表使用网站上的相对 URL 存储其图像,例如“/images/users/user_id.jpeg”。

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

现在我们的用户希望报告能够在报告中显示他们的图像,并且可以导出为 pdf 并打印。

在 SSRS 报告中,我尝试使用带有完整 URL 和相对 URL 的 HTML 图像标签,并可以选择呈现 HTML,但它不起作用。

我尝试使用工具箱中的图像控件和外部 URL,但似乎也不起作用。

有人可以帮我解决这个问题或指导我找到一些有用的链接吗?

谢谢大家。

sql-server reporting-services
3个回答
2
投票

我什么都试过了!!!它无法在 BIDS、Web 浏览器或 Winform 报表查看器控件中工作。

我最终对图像进行了硬编码,但它仍然不起作用:

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

我非常确定问题是与 Active Directory 组策略传播有关。如果您遇到同样的问题并且已经尝试了所有您能想到的方法,我建议您将其放置过夜:

  1. 在 SSRS 配置中设置无人值守执行帐户 使用密码不会过期的服务帐户:

enter image description here

  1. 权限(图像和站点设置):

enter image description here

  1. 可以成功导航到图像,但它仍然没有显示在报告中。

enter image description here

  1. 正确设置 SSRS 图像属性,等号和 url 括在双引号中,即:="url"

enter image description here

  1. 甚至清除浏览器缓存并尝试不同的浏览器等等

无论如何,第二天早上我尝试了,硬编码路径可以工作,现在这个动态 URL 也可以工作:

http://MyServer/Reports_SQL2008/Pages/Resource.aspx?ItemPath=%2fProjectReporting%2f" & First(Fields!Brand.Value, "ClientAndBrandByAccount") & "_Logo.png&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>

我尝试将服务器 URL 设为动态,如 Alex Z 所示,尽管我必须使用此

Replace
代码:

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

1
投票

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

  1. 确保您有一个有效的 URL,可以将您带到其中一张图像。将 URL 粘贴到浏览器的地址栏中进行测试,并确保图像显示在浏览器中。

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

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

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

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

  6. 单击“值”属性下拉菜单中的

    <Expression...>
    选项。编辑表达式,使其显示
    ="
    您的 URL,而不带文件名
    " & Fields!
    您的图像文件名数据字段名称
    .Value

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

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

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


0
投票

使用表达式和全局变量创建相对 URL

Globals!ReportServerUrl

=

Globals!ReportServerUrl
+“你的图像之路”

© www.soinside.com 2019 - 2024. All rights reserved.