我从商业智能开发工作室(Visual Studio 2008)中得到了一个相当令人沮丧的错误。我有一份包含4个子报告的报告,这些子报告可能包含也可能不包含数据,因此他们的HIDDEN属性由表达式控制:
=IIF(ReportItems![SOME TEXT BOX].Value = 0, TRUE, FALSE)
[SOME TEXT BOX]的内容是存储过程为其各自的子报告返回的行数,因此如果值为0,则包含子报告的矩形设置为HIDDEN = TRUE。
这适用于4个子报告中的3个,但由于某些原因,其中一个会导致此错误:
The hidden expression for [RECTANGLE CONTAINING SUB-REPORT] contains an error:
Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed
一些谷歌搜索显示这(显然)与访问权限有关,但大多数人似乎遇到与MS Sharepoint相关的错误,并且解决方案似乎不适用。
非常感谢任何帮助!
布赖恩
编辑:这只发生在'ReportItems![SOME TEXT BOX] .Value = 0'时返回TRUE,即没有行。
答案 0 :(得分:3)
好的,所以我发现了这个问题的真正的原因;微软,以及他们无益的错误消息!但严重的是我收到此错误,因为我传递的是NULL值。
假设您已经阅读了我的初始问题,获取NULL的数据集就是填充[SOME TEXT BOX]的数据集,但是NULL不在填充[SOME TEXT BOX]的字段中。房子有点圆,但最后我到了那里!
答案 1 :(得分:0)
所以我找到了一个半解决方案:我转到了报表管理器URL,然后是网站设置,然后是安全性,并为我们域的所有成员添加了一个具有完全访问权限的新角色分配。按照:
http://msdn.microsoft.com/en-us/library/aa337385.aspx
这允许报告在已部署的Web应用程序中工作,但BIDS仍无法运行报告。嘿嘿,至少客户可以使用它,我可以通过报告管理器进行测试。
答案 2 :(得分:0)
当您将代码从.NET Framework 4.0迁移到4.5:权限 !!时,我发现了问题的真正原因。现在,默认情况下,ReportViewer中的权限受到更多限制。
修复。在您的代码中执行以下操作。
实例化报告查看器时,设置无限制模式:
var myReport = new ReportViewer();
System.Security.PermissionSet permissionReport = new System.Security.PermissionSet(System.Security.Permissions.PermissionState.Unrestricted);
myReport.LocalReport.SetBasePermissionsForSandboxAppDomain(permissionReport);
完成!!