SSRS 2005子报告偶尔会出现空白

时间:2013-02-01 19:31:27

标签: reportingservices-2005

我有一个“父”报告,它故意不显示任何内容,但会查询要开帐单的作业编号数据集。然后,此父报告将循环执行这些作业,并将它们逐个传递给两个子报告。第一个SubReport是传递的工作结果的摘要。第二个子报告是该工作发票,员工,工时,费率等所有细节的明细。

家长向子报告提交的作业大约有400个。摘要报告为所有这些打印精美。详细子报告在大约90-95%的情况下这样做,但在某些作业上它是空白的,我看到错误消息说明了无法显示子报告的效果。

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

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

报告继续报告错误,所以这很好,但我也需要显示这些详细信息表。

2 个答案:

答案 0 :(得分:3)

要调试此类问题,我采用以下方法。

  1. 确定它是否是特定数据集。 I.E是一组特定的工作号码。您可以通过某种方式限制查询(参数,硬编码等)来实现此目的。
  2. 如果数据相关,请缩小范围,直到找到导致问题的实际数据为止
  3. 如果它与数据无关,那么我将逐一缩小渲染技术范围。

    • 首先我使用不同的浏览器
    • 然后我尝试不同的报表服务器
    • 最后是不同的报告查看器(SharePoint原生,直接,视觉工作室等)。
  4. 通常我发现这是一个次要的数据转换问题,它会抛出以下数据流。

    不要打折报告系统中的错误 - 我认为你使用的是传统技术。

    N.B。仅仅因为子报表是自己呈现的,这并不意味着它将与主报表一起使用。不同部分的相互作用方式也很重要。

答案 1 :(得分:0)

此问题已得到解决。我在这里发布我的决议给任何可能正在经历类似事情的人,即使这似乎是一个相当奇怪的情况。该问题与应用于表的各种元素的隐藏属性有关。

在我们公司,工作组被分配到计划。其中一个程序的程序经理希望在他的程序中看到按“subjobs”分组的收入小计。没有人关心这一点。我的解决方案是在报告中(在违规表中)创建字段,这些字段只有在报告其程序时才将可见性属性设置为true。

这些报告的分组是Program / Job / SubJob。我使用IIF语句将隐藏属性应用于表中的各个字段。如果是他的程序,则显示数据,否则不显示。事实证明,SSRS 2005中的某些内容因这些隐藏的字段而发生冲突,但仅限于某些工作,而这种冲突导致在这些工作完成时抛出“未找到对象”异常。我仍然不确定冲突是什么,以及为什么它总是出现。大约95%的报告正常打印。

解决方案是将所有隐藏值移动到表的一列,并将隐藏属性仅应用于该列。因此,整个列根据需要被隐藏,并且其中的所有内容都遵循列本身的隐藏属性。