SSDT 子报告不完整

SSDT Sub-report is incomplete

我正在编写我在 Visual Studio (2015) SQL Server Data Tools 中设计的第一份报告。 尽管子报告的数据集是 return 多条记录,但我的子报告仅为每个父事件 return 一条记录。

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

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

子报表 Breaks Sub-report in design view

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

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

运行 这个子报告本身 return 为 WorkSession 293 的 2 条记录,包括仍在进行中的午餐。

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

运行 这个子报告本身 return 为 WorkSession 288 提供了 2 条记录,包括已完成的午餐。

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

完整报告的预览显示了每个 WorkSession 的第一条记录, 但 none 的其他人。 EmployeeWorkSessionID 与正确的员工相关联。报告 space 足以容纳三行。数据集 return 是正确的记录,只是没有显示。开放的午休时间(包含 NULL)不是唯一被跳过的记录。

有什么想法吗?

这不构成和回答但太长不适合评论...

基本上,就我所见,设计看起来还不错。 (顺便说一句:感谢 post 提供大量设计和结果的屏幕截图,很多人不...)

有一些要点和事情要尝试,更多的是消除它们而不是解决它,但试一试,看看会发生什么。

先复制一份!

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

再补充几点,仅供参考

  • 主报表中的子报表占位符可以更小,它会扩展以适合内容
  • 您不需要子报表底部的空白 space,报表将展开以适应内容,任何额外的白色-space,默认情况下,将追加在下面子报表的 tablix。换句话说,尽可能地缩小子报表主体,这也将有助于消除页面跨度超过您想要的问题。

看看你的表现,post 返回这里的结果。一旦这些东西被排除,我们可以进一步看。

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

显然,某些操作必须导致它更新数据集,因为我的报告确实在几天内发生了变化;但它的变化不够频繁,不足以使发生的事情一目了然。下面的解决方案看起来很有效,因为移动子报表会导致更新。但此后 运行 报告数据保持不变,而数据库发生变化。

这里有一个tool重置(删除)缓存数据。

还有 Whosebug article 挽救了(剩下的)我的理智。

我的报告一直在工作; Visual Studio 懒惰。

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