我通过嵌入在 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.
我尝试过的
我仔细检查了生成的 URL,它是正确的。我什至将点击操作设为图像的超链接,它会正确转到图像。
最初我在表达式中连接 URL,但在这不起作用之后我让 SQL 查询构建了整个 URL。它仍然没有显示。
我试过设置一个标志:
reportViewer.LocalReport.EnableExternalImages = true;
使用 .NET Reflector 生成 PDB 文件,我能够单步执行报表查看器的代码。值对象上有一个名为“IsExpression”的标志,当报告呈现时它被设置为 false。我不太了解报告查看器的内部工作原理,所以我不知道这是否是一个转移注意力的问题。
我已将输出格式更改为 HTML,但它仍然不显示。图像标记(如 Chrome 开发者工具中所示)呈现为:
<img onload="this.fitproportional=true;this.pv=0;this.ph=0;" height="5px" width="1px" src=(unknown)>
我已尝试将每个图像的 MIMEType 值设置为正确的值。 (感谢 Mike Honey 的建议)
我尝试了 AutoSize、Fit、FitProportional 和 的不同Sizing 值em>剪辑。
我使用此处的安装程序完全修复并重新安装了 ReportViewer 运行时安装:https://www.microsoft.com/en-gb/download/details.aspx?id=35747
我已从我的本地 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/
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
在我的应用程序中,我需要能够找到所有数字子字符串,然后扫描每个子字符串,找到第一个匹配范围(例如5到15之间)的子字符串,并将该实例替换为另一个字符串“X”。我的测试字符串s="1foo100bar10gee1"我的初始模式是1个或多个数字的任何字符串,例如,re=Regexp.new(/\d+/)matches=s.scan(re)给出["1","100","10","1"]如果我想用“X”替换第N个匹配项,并且只替换第N个匹配项,我该怎么做?例如,如果我想替换第三个匹配项“10”(匹配项[2]),我不能只说s[matches[2]]="X"因为它做了两次替换“1fooX0barXg
所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择
我试图在索引页中创建一个超链接,但它没有显示,也没有给出任何错误。这是我的index.html.erb代码。ListingarticlesTitleTextssss我检查了我的路线,我认为它们也没有问题。PrefixVerbURIPatternController#Actionwelcome_indexGET/welcome/index(.:format)welcome#indexarticlesGET/articles(.:format)articles#indexPOST/articles(.:format)articles#createnew_articleGET/article
我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c
如何在ruby中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL
我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha
我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司
目前,Itembelongs_toCompany和has_manyItemVariants。我正在尝试使用嵌套的fields_for通过Item表单添加ItemVariant字段,但是使用:item_variants不显示该表单。只有当我使用单数时才会显示。我检查了我的关联,它们似乎是正确的,这可能与嵌套在公司下的项目有关,还是我遗漏了其他东西?提前致谢。注意:下面的代码片段中省略了不相关的代码。编辑:不知道这是否相关,但我正在使用CanCan进行身份验证。routes.rbresources:companiesdoresources:itemsenditem.rbclassItemi