我正在处理我在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)不是唯一被跳过的记录。
有什么想法吗?
答案 0 :(得分:0)
这不是构成和回答,但太长了,无法放入评论...
从我所见,基本上设计看起来不错。 (顺便说一句:感谢您发布了大量设计和结果的屏幕截图,所以很多人没有。)
有一些要尝试的要点和事情,要消除它们比解决问题要多,但请他们去看看会发生什么。
首先复制!
CanGrow
= false
并将其设置为true
(默认为True)Breaks:
文本框下方更多评论仅供参考。
看看您如何将结果发布回这里。一旦消除了这些问题,我们就可以进一步寻找。
答案 1 :(得分:0)
此问题是由于SSDT报表设计器会缓存您第一次预览报表时收集的数据,而不会在后续预览中重新运行数据集查询!
显然,某些操作必须导致它更新数据集,因为我的报告在过去的几天中确实发生了变化;但是它变化的频率不足以使所发生的事情变得显而易见。下面的解决方案似乎正在工作,因为移动子报表导致了更新。但是在运行之后,报表数据在数据库更改时保持静态。
这里是tool,用于重置(删除)缓存的数据。
还有stackoverflow article拯救了我的理智(剩下的)。
我的报告始终有效; Visual Studio很懒。
如果有人知道强制所有预览实时访问数据的方法,我也想知道。