我正在开发一个复杂的SSRS报告,其中包含许多子报告,总共有五个级别的嵌套子报告。这是很多,但由于顶级报告的复杂性,这是必要的。
我在添加的最后一个子报告中遇到了一个奇怪的错误:
Warning 1 [rsErrorExecutingSubreport] An error occurred while executing the subreport 'ThingRateQuotaWrapper' (Instance: T0R0S0S1T0R0x0S0): Object reference not set to an instance of an object. C:\Users\mmxxxxxxx\Documents\Visual Studio 2012\ThingsReporting\ThingsReporting\Thing 2014 Consolidated Report.rdl 0 0
这里的问题是,当我运行第二级报告(顶级“合并”报告中包含的报告之一)时,一切正常。但是在顶级报告中,我得到了这个意外的错误。
提到的特定子报告比最高报告低了四个级别,所以如果出现问题,我希望第二级报告失败,但是刚刚提到它完全正常。
此外,错误消息中提到的RDL和行号告诉我没什么用处。
我已经尝试了一切我能想到的解决这个问题的方法,包括从ThingRateQuotaWrapper向上删除,保存,重新插入和配置所有子报告。在这一点上,我可以想到没有别的东西可以尝试,这是有道理的。
当报告中的其他报告正常工作时,报告如何因子报告降低四级而失败?
任何人有任何想法或提示?我正在使用SQL Server 2012商业智能和Visual Studio Premium 2012。
答案 0 :(得分:2)
我已经解决了这个问题,但是我并不完全理解这个问题,所以我欢迎任何可能扩展它的评论。
我的方法是查看构成我的合并报表的报表和子报表集中的每个表达式,查找可能因任何原因而失败的任何表达式。我发现包含ThingRateQuotaWrapper子报表的tablix行的可见性表达式下面有一条可怕的红色波浪线。
我认为现场警告的原因是表达的可见性使用了Tablix主要数据集以外的数据集。我重新设计了tablix数据集以包含所需的列以确定子报表的可见性,然后更新可见性表达式以使用主数据集中的新列。这解决了这个问题。
答案 1 :(得分:1)
在重命名子报表时,此问题仍会影响Visual Studio 2017中的SSRS。 删除\ bin \文件夹中的所有对象,VS将重建它而不会出现错误。
答案 2 :(得分:0)
在我的情况下,子报告的名称已被更改(参数,一切都正确)只是名称已被更改。导致此错误。
答案 3 :(得分:0)
当您更改报告名称时,往往会发生这种情况。我通过删除项目目录中的.data文件来完成此操作,因为该文件存储了报表的缓存数据。然后重新启动Visual Studio,该问题应得到解决。 简而言之:
希望这会有所帮助。 谢谢 加文