SSRS '08对象引用未设置为对象的实例

时间:2011-08-10 10:00:53

标签: reporting-services ssrs-2008

Visual Studio '08(BIDS)中预览窗口的完全错误:“本地报表处理期间发生错误。对象引用未设置为对象实例。”

错误列表或输出窗口中没有详细说明其他错误/警告。

背景:在此报告中,我使用表格显示子报告[x]次数,具体取决于SQL数据库中存在的相关对象的数量。也就是说,子报告在表格的一个单元格(唯一单元格)中设置,在一行中为数据集中返回的每个项目重复。

删除子报告允许主报告编译和运行,因此我觉得问题与子报告的安排有关。如果子报告只显示一次,那么主报告编译并运行正常,只有在需要第二个实例时才会出现问题。

当单独测试子报告时,它会在给定每个实例的参数时编译并运行,并要求它从主报告中呈现。所以我可以排除第二个实例的数据导致它失败的想法(以一些div-by-0类型的方式)。

鉴于错误的细节不足以及子报告对其自身有效,我不明白为什么会发生这种情况。

有没有人对调试或建议的解决方案有任何想法?

由于

布赖恩

tldr:当子报告重复多次时,主报告失败。

7 个答案:

答案 0 :(得分:2)

我找到了解决方案。子报告正在传递4个参数,其中一个参数的值是指主报告中的表格单元格的值。将此参数更改为设置该表单元修复该问题的表达式的值。我不知道为什么这是一个解决方案,但确实如此。

更详细地说:[table_cell_a]有一个计算它的值的表达式。 子报告的[parameter_a]被设置为“= ReportItems(”[table_cell_a]“)。值”,当我更改[parameter_a]的表达式以镜像[table_cell_a]的表达式时,一切都再次起作用。

这搞砸了,我甚至无法理解为什么它会像这样。如果在调用子报告之前没有计算[table_cell_a],我可以理解。但如果是这样的话,当只有一份子报告时,报告怎么会起作用呢?

如果有人能提供解释,我将非常感激。

布赖恩

答案 1 :(得分:2)

布赖恩,

我遇到了与Tablix中嵌入的图表类似的问题。我发现这篇文章似乎解决了这个问题,虽然我还没有升级服务器来实际测试它:

http://support.microsoft.com/kb/2639301

希望有所帮助。

答案 2 :(得分:1)

即使我在Action属性中更改了所有更新的报告名称,但在更改项目中的报告名称后,我收到了类似的错误。

本地报告处理期间发生错误。对象引用未设置为对象的实例。

我通过运行链接报告的数据集来手动提供参数值,从而找到了解决方案。

我不确定通过手动运行链接报告的数据集会产生什么不同,但它解决了我的问题,我不再收到此错误。

由于

Yogi

答案 3 :(得分:0)

只是分享。就我而言,这不是一份子报告。当我访问钻取报告时,我收到了相同的消息。显然,在“行动:去报告”> “指定报告:”,我错误地将报告的全名粘贴到扩展名。删除“.rdl”扩展名解决了我的问题。

附录:如果追溯报告名称是表达式的一部分,那么在SharePoint中托管时,.rdl扩展名是必需的。正如您所发现的那样,这可以防止它在预览模式下工作。解决方案是编写代码以避免必须使用表达式作为报告名称。

答案 4 :(得分:0)

复制数据集和查询。 创建新报告或将Tablix粘贴到新报告。您不会再次收到错误。

答案 5 :(得分:0)

我不得不删除SubReport并再次添加它。然后它奏效了。

答案 6 :(得分:0)

当我更改我钻到的报告的名称时,我遇到了同样的错误。我 通过属性>将动作表达式中的名称更改为新名称。行动>转到报告> (...)>表达,但显然没有。当我打开文本框时>属性对话框窗口而不是使用“属性”窗格,并将钻取的更改为在该窗口中的报告名称,它解决了我的问题。