Visual Studio '08 (BIDS) 中预览窗口的完整错误:“本地报告处理期间发生错误。对象引用未设置为对象的实例。”
错误列表或输出窗口中没有详细的错误/警告。
背景:在这份报告中,我使用一个表来显示子报告 [x] 次,具体取决于 SQL 数据库中存在的相关对象的数量。也就是说,子报表设置在表格的一个单元格(唯一的单元格)内,在对数据集中返回的每个项目重复的一行中。
去掉子报表可以让主报表编译运行,所以我感觉这个问题和子报表的排列有关。如果子报表只显示一次,那么主报表编译并运行正常,只有当需要第二个实例时才会出现问题。
当单独测试子报表时,它会在给定每个实例的参数时编译并运行,它被要求从主报表呈现。所以我可以排除第二个实例的数据导致它失败的想法(以某种 div-by-0 类型的方式)。
鉴于错误中缺少详细信息并且子报告自行运行,我不明白为什么会发生这种情况。
有没有人有调试的想法或建议的解决方案?
谢谢
布莱恩
tldr:当子报告重复多次时,主报告失败。
最佳答案
我想出了一个解决办法。向子报告传递 4 个参数,其中一个参数的值引用主报告中表格单元格的值。将此参数更改为设置该表格单元格的表达式 的值解决了该问题。我不知道为什么这是一个解决方案,但确实如此。
更详细地说:[table_cell_a] 有一个计算它的值的表达式。 子报表的 [parameter_a] 设置为“=ReportItems([table_cell_a]”).Value,当我更改 [parameter_a] 的表达式以反射(reflect) [table_cell_a] 的表达式时,一切又恢复正常了。
这是一团糟,我什至无法理解为什么它会这样。如果在调用子报告之前未计算 [table_cell_a],我可以理解。但如果是这样的话,当只有一个子报表时,报表怎么会起作用呢?
如果有人能提供解释,我将不胜感激。
布莱恩
关于reporting-services - SSRS '08 对象引用未设置为对象的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7008961/