我有一个小型网站,我在其中维护用户数据,并将用户数据维护在一个表中,该表使用网站上的相对 URL 存储其图像,例如“/images/users/user_id.jpeg”。
我正在 asp.net 页面中使用 ReportViewer 控件在 Web 应用程序中显示来自 SSRS 的报告。
现在我们的用户希望报告能够在报告中显示他们的图像,并且可以导出为 pdf 并打印。
在 SSRS 报告中,我尝试使用带有完整 URL 和相对 URL 的 HTML 图像标签,并可以选择呈现 HTML,但它不起作用。
我尝试使用工具箱中的图像控件和外部 URL,但似乎也不起作用。
有人可以帮我解决这个问题或指导我找到一些有用的链接吗?
谢谢大家。
我什么都试过了!!!它无法在 BIDS、Web 浏览器或 Winform 报表查看器控件中工作。
我最终对图像进行了硬编码,但它仍然不起作用:
="http://MyServer/Reports_SQL2008/Pages/Resource.aspx?ItemPath=%2fProjectReporting%2fBRAND_Logo.png&RetrieveResource=True"
我非常确定问题是与 Active Directory 组策略传播有关。如果您遇到同样的问题并且已经尝试了所有您能想到的方法,我建议您将其放置过夜:
无论如何,第二天早上我尝试了,硬编码路径可以工作,现在这个动态 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" & First(Fields!Brand.Value, "ClientAndBrandByAccount") & "_Logo.png&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"
如果您可以在报表设计器中预览图像,那么设置报表会容易得多,以便您的用户可以看到图像。
确保您有一个有效的 URL,可以将您带到其中一张图像。将 URL 粘贴到浏览器的地址栏中进行测试,并确保图像显示在浏览器中。
从报告中删除现有图像。将新图像插入到用于显示表格的报表对象(通常是列表或表格)中。 (这应该是旧图像所在的位置。)
指定Web作为图片来源,并输入您的工作URL作为图片的URL。
在报表设计器中预览报表。您应该能够在报告中看到正确显示的图像(带有硬编码 URL)。
假设所有图像都存储在服务器上的同一目录中,请切换到报表设计器的布局选项卡并单击图像对象。在“属性”窗口中,value 属性应该是经过编码的 URL。
单击“值”属性下拉菜单中的
<Expression...>
选项。编辑表达式,使其显示 ="
您的 URL,而不带文件名" & Fields!
您的图像文件名数据字段名称.Value
在报表设计器中预览报表。您应该能够看到报告中正确显示的数据的相应图像。
如果到目前为止一切正常,请部署报告并尝试在报告管理器中查看它。您应该能够看到报告中正确显示的数据的相应图像。
此时,您的用户应该能够看到报告图像。
使用表达式和全局变量创建相对 URL
Globals!ReportServerUrl
=
Globals!ReportServerUrl
+“你的图像之路”