使用 ASP.NET 4.0,我通过实例化
Microsoft.ReportingServices.RdlObjectModel.Report
、设置 Code
属性并使用 RdlSerializer
返回流来创建 RDLC 流。
然后我将该流传递给 ReportViewer,如下所示:
ReportViewer1.LocalReport.LoadReportDefinition(rdlcStream);
如果我不设置
Code
属性,我不会收到任何错误并且报告会正确显示,但是当我为需要自定义代码的报告设置 Code
属性时,我会收到下面提到的 'RequestMinimum' is obsolete
错误。
编译表达式时发生意外错误。本机编译器返回值:'[BC40000]'RequestMinimum'已过时:'程序集级别声明性安全性已过时,默认情况下 CLR 不再强制执行。请参阅 http://go.microsoft.com/fwlink/?LinkID=155570 了解更多信息。'.'.
在 winforms 应用程序中使用报表查看器控件不会发生此错误。
有人看到/解决了这个问题吗?
我不知道这个错误的确切原因,但根据我的经验,它与结果表中从一个单元格到另一个单元格的表达式的简单复制和过去有关,所有这些都是在更改布局和组之后进行的.
我建议您删除任何表达式或公式,验证您的报告执行时是否没有任何错误消息,并一对一地重写所有表达式和公式,检查报告正确打开的每个公式。
这对我有用。
对我来说就是这一行的页码
<Value>=Globals!PageNumber + ' of ' + Globals!TotalPages</Value>
对于那些遇到此错误并生成报告标记的人来说,还有另一个选择。
可能其中一个
<Value>
标签以 "="
符号开头,如果这不是一个表达式,您需要使用 EvaluationMode="Constant"
。
这对我来说是一个复制和粘贴错误。更准确地说,我漏掉了一个空格。
这个表达式导致了错误:
=Fields!CompSalesName.Value& vbcrlf & Fields!Address.Value
虽然应该如此
=Fields!CompSalesName.Value & vbcrlf & Fields!Address.Value