【问题标题】:SSDT Sub-report is incompleteSSDT 子报告不完整
【发布时间】:2019-01-25 02:35:48
【问题描述】:

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

我的报告: 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 与正确的员工相关联。报告空间足够容纳三行。正确的记录由数据集返回,它们只是不显示。开放的午休时间(包含 NULL)不是唯一被跳过的记录。

有什么想法吗?

【问题讨论】:

  • 这很可能与主报告中的分组有关。

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


【解决方案1】:

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

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

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

先复制一份!

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

还有几个cmets仅供参考。

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

看看你是怎么做的,然后把结果发回这里。一旦消除了这些东西,我们就可以进一步观察。

【讨论】:

  • 感谢您的回复。我没有看到和错误CanGrows。该矩形显然是 Tablix 列表的组成部分,任何移出它的内容都不会出现在报告中。没有它,任何东西都不能放在细节区域。我已经消除了任何重叠。我还没有缩小尺寸;我想等到我开始看到多条记录后再进行试验。问题保持不变。你认为接下来会发生什么?
  • 谢谢艾伦。您的建议很有帮助,尤其是关于间距的建议。
【解决方案2】:

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

显然,某些操作必须导致它更新数据集,因为我的报告确实在几天的过程中发生了变化;但它并没有经常发生变化,不足以让正在发生的事情变得显而易见。下面的解决方案看起来可以正常工作,因为移动子报告会导致更新。但在运行之后,报表数据保持静态,而数据库发生变化。

这是一个tool 来重置(删除)缓存的数据。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 1970-01-01
    • 2021-04-24
    相关资源
    最近更新 更多