SSDT子报告不完整

时间:2019-01-25 02:35:49

标签: sql-server visual-studio reporting-services sql-server-data-tools

我正在处理我在Visual Studio(2015)SQL Server数据工具中设计的第一份报告。 尽管子报表的数据集正在返回多个记录,但我的子报表仅针对每个父事件返回一个记录。

我的报告: On-the-clock-report in design view

子报表的链接值为字段[EmployeeWorkSessionID]

子报表 Breaks Sub-report in design view

子报表的数据集还包含[EmployeeWorkSessionID]字段

子报表预览#1 Sub-report for WorkSession 293

单独运行此子报告将为WorkSession 293返回2条记录,包括仍在进行的午餐。

子报表预览#2 Sub-report for WorkSession 288

单独运行此子报告将为WorkSession 288返回2条记录,包括已完成的午餐。

(并非如此)完整的报告 The full report preview

完整报告的预览显示每个WorkSession的第一条记录, 但没有其他。 EmployeeWorkSessionID与正确的Employee相关联。报告空间足够容纳三行。正确的记录由数据集返回,只是不显示。开放午餐休息时间(包含NULL)不是唯一被跳过的记录。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这不是构成和回答,但太长了,无法放入评论...

从我所见,基本上设计看起来不错。 (顺便说一句:感谢您发布了大量设计和结果的屏幕截图,所以很多人没有。)

有一些要尝试的要点和事情,要消除它们比解决问题要多,但请他们去看看会发生什么。

首先复制!

  • 检查是否有任何项目具有CanGrow = false并将其设置为true (默认为True)
  • 删除报告项目周围的矩形
  • 您有几个重叠的文本框,为了安全起见,请移动这些文本框,使其不会重叠
  • 移动子报表,使其位于Breaks:文本框下方

更多评论仅供参考。

  • 主报表中的子报表占位符可以较小,它将扩展以适合内容
  • 您不需要子报表底部的空格,该报表将扩展以适合其内容,默认情况下,任何其他空白将附加在子报表的Tablix下。换句话说,将子报表的主体尽量缩小,这也将有助于消除页面跨度超出您想要的范围的问题。

看看您如何将结果发布回这里。一旦消除了这些问题,我们就可以进一步寻找。

答案 1 :(得分:0)

此问题是由于SSDT报表设计器会缓存您第一次预览报表时收集的数据,而不会在后续预览中重新运行数据集查询!

显然,某些操作必须导致它更新数据集,因为我的报告在过去的几天中确实发生了变化;但是它变化的频率不足以使所发生的事情变得显而易见。下面的解决方案似乎正在工作,因为移动子报表导致了更新。但是在运行之后,报表数据在数据库更改时保持静态。

这里是tool,用于重置(删除)缓存的数据。

还有stackoverflow article拯救了我的理智(剩下的)。

我的报告始终有效; Visual Studio很懒。

如果有人知道强制所有预览实时访问数据的方法,我也想知道。