2013-02-01 84 views
3

我有一个“家长”报告,故意不显示任何内容,但查询要计费的工作号码数据集。然后,这个Parent报告遍历这些作业,并将它们逐一传递给两个SubReports。第一个子报告是对通过的工作进行结算的摘要。第二个子报告是该工作发票,员工,工时,费率等的所有细节的细目。SSRS 2005子报告偶尔空

将会有大约400个工作由家长提交给子报告。摘要报告打印精美的所有。 Detail SubReport在大约90%-95%的情况下是这样做的,但是在一些作业中它是空白的,并且我看到错误消息表明SubReport无法显示。

研究这个时,最常见的反应是参数传入的方式存在问题。这似乎并不是这种情况,特别是400个工作中的约380个显示细节精美。所以,我运行了该SubReport的特定查询,以查看我是否真的获得了其中一个违规作业的数据。是的,数百行数据,所以数据在那里,单个参数正在传递。

还有什么可能导致此错误?

报告继续过去的错误,所以这很好,但我需要这些细节表来显示。

回答

0

此问题已解决。我在这里发布我的决议给任何可能会遇到类似情况的人,尽管这似乎是一个相当离奇的情况。该问题与应用于表格各个元素的Hidden属性有关。

在我们公司,作业组被分配到程序。其中一个计划的项目经理希望在他的计划中查看按“subjobs”分组的收入小计。没有人愿意看到这一点。我的解决方案是在报告中(在违规表中)创建具有可见性属性设置为true的报告字段,只有当报告了他的程序时。这些报告的分组是Program/Job/SubJob。我正在使用IIF语句将隐藏属性应用于表中的各个字段。如果是他的程序,显示数据,否则,不要。事实证明,SSRS 2005中的某些内容是由这些隐藏字段产生的冲突造成的,但仅限于某些作业,并且这些冲突导致在这些作业通过时发生“未找到对象”异常。我仍然不确定冲突是什么,为什么它没有出现总是。报告中约95%正常打印。

解决方法是将所有隐藏值移动到表格的一列,然后仅将隐藏属性应用于该列。因此,整个列按需要隐藏,其中的所有内容都服从列本身的隐藏属性。

3

要调试这种问题,我采取以下方法。

  1. 如果它是一组特定的数据,就算出来。 I.E是一组特定的工作数字。您可以通过限制查询以某种方式(参数,硬编码等)
  2. 如果有关它的数据做到这一点,缩小,直到你可以找到实际的数据导致了问题
  3. 如果不是相关的数据,那么我缩小渲染技术一个接一个。

    • 首先,我使用单独的浏览器
    • 然后我尝试不同的报表服务器
    • 最后不同的报表查看器(本地的SharePoint,直接,视觉工作室等)。

通常我觉得这是一个小的数据转换问题抛出下面的数据流呈现出。

不要在报告系统中降低错误 - 在我看来,您使用的是传统技术。

N.B.仅仅因为子报表是独立呈现的,并不意味着它会与主报告结合使用。不同部分交互的方式也很重要。

+0

Preet,谢谢你的及时回复。我一直在使用类似于你所建议的方法。 - 我已经硬编码了参数为105880的作业编号。 - 我直接进入SQL Mgmt Studio并在那里运行查询。 正如你所说,这指出我的渲染问题。 唯一可用的浏览器是IE。我们使用Deltek Vision 6.2SP2,该应用程序仅适用于IE。呈现问题出现在那里,它出现在SSRS 2005的预览版中(同样,Vision支持的是什么)。当报告打印到硬拷贝时也会发生。 (续) – DJGray

+0

这些报告有数百页,并且有问题的页面分散在各处,而所有其他页面正常呈现。这些报告的数据中必定会有些事情导致SSRS呃逆。我会继续挖掘,但认为这里的某个人可能会在他们的指尖上做对。这个地方渗透着经验和智慧。 – DJGray

+0

谢谢,但您需要进一步缩小范围,然后隔离这些技术,最好的方法是剥离越来越多的数据和越来越多的渲染技术。此外,您可能正在修改Sp以仅返回有故障的子报表数据。 –