gpt4 book ai didi

c# - 当表达式设置值时不显示 SSRS 外部图像

转载 作者:可可西里 更新时间:2023-11-01 08:48:30 30 4
gpt4 key购买 nike

我通过嵌入在 MVC 应用程序中的 aspx 页面使用 Microsoft.ReportViewer.WebForms 版本 11。报表直接从报表查看器呈现为 PDF。

问题

我有一个显示外部图像的 tablix。如果图像的 URL 是根据表达式计算的或根据数据库中的列设置的,则图像不会显示。只有当我直接在报告中对 URL 进行硬编码时,图像才会显示。显然这不是解决方案,但它表明报表能够访问 URL 并呈现图像。

我从呈现报告中得到这些警告:

The ImageData for the image ‘LinkedImage’ is invalid. Details: Invalid URI: The format of the URI could not be determined.

The value of the ImageData property for the image ‘LinkedImage’ is “”, which is not a valid ImageData.

我尝试过的

  1. 我仔细检查了生成的 URL,它是正确的。我什至将点击操作设为图像的超链接,它会正确转到图像。

  2. 最初我在表达式中连接 URL,但在这不起作用之后我让 SQL 查询构建了整个 URL。它仍然没有显示。

  3. 我试过设置一个标志:

    reportViewer.LocalReport.EnableExternalImages = true;
  4. 使用 .NET Reflector 生成 PDB 文件,我能够单步执行报表查看器的代码。值对象上有一个名为“IsExpression”的标志,当报告呈现时它被设置为 false。我不太了解报告查看器的内部工作原理,所以我不知道这是否是一个转移注意力的问题。

  5. 我已将输出格式更改为 HTML,但它仍然不显示。图像标记(如 Chrome 开发者工具中所示)呈现为:

    <img onload="this.fitproportional=true;this.pv=0;this.ph=0;" height="5px" width="1px" src=(unknown)>
  6. 我已尝试将每个图像的 MIMEType 值设置为正确的值。 (感谢 Mike Honey 的建议)

  7. 我尝试了 AutoSizeFitFitProportional 的不同Sizing 值em>剪辑

  8. 我使用此处的安装程序完全修复并重新安装了 ReportViewer 运行时安装:https://www.microsoft.com/en-gb/download/details.aspx?id=35747

  9. 我已从我的本地 Visual Studio 实例运行该网站,并在另一台服务器上的网站中部署了一个版本(相同安装的 ReportViewer 版本),但问题仍然存在。

我想提请注意第 4 点。是否存在导致 ReportViewer 代码无法将值视为表达式的配置?

代码

这是 RDL 中的标记:

<Image Name="LinkedImage">
<Source>External</Source>
<Value>=Fields!imageUrl.Value</Value>
<Sizing>FitProportional</Sizing>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>

这是一个示例 URL(从示例中删除了主机):

http://---------/images/FEE40608-0457-E511-A17F-00155D145C00/FFE40608-0457-E511-A17F-00155D145C00.jpg

我错过了什么吗?谢谢!

最佳答案

我终于弄明白了。这个问题原来是由定制的 ReportProcessor 类引起的,该类已添加到 MVC 应用程序中,该应用程序甚至在渲染发生之前就对 RDL 进行了操作。具体来说,它从 RDL 中图像节点的值节点中删除 = 字符。我没有想到报告没有以其原始状态进入渲染阶段。我会用我花费的声望来付出代价!

这个问题对于引入不同的 ReportProcessor 以这种方式操作 RDL 的人来说是独一无二的,所以我不知道它对在 SO 上发现这个问题的人有多大用处。我会把它留在这里,因为它可以用作要检查的事项列表。

抱歉浪费了大家的时间。感谢 Mike-Honey、user1429080 和 AndrewE 付出的时间和精力。

关于c# - 当表达式设置值时不显示 SSRS 外部图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56288884/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com