3

我有一个“父”报告,它故意不显示任何内容,但查询要计费的工作编号数据集。然后,此父报表循环遍历这些作业,并将它们一一传递到两个子报表。第一个子报告是对传入的工作计费的摘要。第二个子报告是该工作的发票、员工、小时、费率等的所有详细信息的细目。

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

对此进行研究时,最常见的反应是传入参数的方式存在问题。这里的情况似乎并非如此,尤其是考虑到 400 个作业中约有 380 多个完美地显示了细节。因此,我对该 SubReport 运行了特定查询,以查看我是否真的获得了其中一项违规作业的数据。是的,数百行数据,所以数据在那里,正在传递单个参数。

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

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

4

2 回答 2

3

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

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

    • 首先我使用单独的浏览器
    • 然后我尝试不同的报表服务器
    • 最后是不同的报表查看器(SharePoint native、direct、visual studio 等)。

通常我发现这是一个小的数据转换问题,它会抛出以下数据流渲染。

也不要忽视报告系统中的错误——我认为你使用的是遗留技术。

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

于 2013-02-01T19:47:09.123 回答
0

此问题已得到解决。我在这里为任何可能遇到类似情况的人发布我的解决方案,即使这似乎是一个相当奇怪的情况。该问题与应用于表的各种元素的 Hidden 属性有关。

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

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

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

于 2013-02-05T15:33:17.500 回答