【问题标题】:How are the row heights in an SSRS tablix calculated?如何计算 SSRS tablix 中的行高?
【发布时间】:2010-07-30 00:59:42
【问题描述】:

我想知道如何计算 SSRS tablix 中的行高。

例如,我有一些数据,其显示和按列分组的数据足够接近以至于相同。但是,由于某些未知原因,某些行会具有很大的高度和很多空白空间。如果您检查 HTML 输出,您会看到这些行应用了 rowspanheight

这不是包装问题,因为我可以在该行的项目 ID 上执行 IIf 并简单地显示 "a" 而不是实际值,仍然得到异常高度。我还在所有文本框/行等上禁用了CanGrow,并设置了手动高度,但问题仍然存在。

是什么导致了这种行为?通常如何计算行高?

【问题讨论】:

  • 您正在运行的 SQL Server 的确切版本是什么?
  • 只是好奇...它如何在 WindowsForms 报表查看器中显示?或者导出为 PDF 时如何显示?还要检查您没有对除您想要的属性之外的任何属性进行一些绑定(查看 RDL)报告允许绑定报告的许多方面,而不仅仅是您看到的值...
  • 迟到的答案对不起伙计们 - @alison - 2008, @MikeG - 同样的问题,看不到任何其他绑定。

标签: sql-server reporting-services


【解决方案1】:

关于正在发生的事情有两种可能性:

  1. SQL Server 2008(完全修补)有一个错误,即有时可以为某些数据类型添加填充。查看this page 了解更多详情。该链接并未完全涵盖您的问题,但 Microsoft 的支持人员确实声称它是一个错误,并且很可能也延伸到您的问题。据说,升级到 SQL Server 2008 R2 可以解决这个问题。
  2. 假设您不打算升级 SQL Server,有几件事需要您检查:
    • 确保行高未设置为小于默认值的高度。保持高度至少与默认值一样大。
    • 调整填充设置,使顶部和底部填充设置为零(正如其他人提到的那样)到 Padding: 2,2, 0, 0
    • 看看this page for a more in-depth description。这篇文章已有几年历史了,但信息可能仍然适用。

【讨论】:

  • 是的。我看到了同样的错误,这是我之前的回答所依据的。
  • 这是这里最全面的答案。它应该有望帮助其他人。我发现在重新创建大量 tablix 并更改分组性质后,它 似乎 消失了(尽管数据可能不同)。但是,我仍然不确定为什么,并且 rdl 似乎没有透露任何关键信息。不过,提议的解决方案都受到了赞赏。
  • +1 用于删除填充。我以为我已经尝试了一切……现在回想起来,这似乎很明显。 :P
【解决方案2】:

尝试为您的行设置以下属性,看看是否有帮助。

  • 填充:2pt、2pt、0pt、0pt
  • 垂直对齐:中间
  • CanGrow:错误
  • CanShrink:错误

【讨论】:

  • 谢谢我试过了(这似乎是一个常见的答案)但没有运气。尽管如此,仍然很感激。
  • 对我来说,罪魁祸首是 CanGrow 被设置为 true。感谢您的回答!这让我发疯了。
【解决方案3】:

要检查的一件事是数据类型。较旧的数据类型添加了填充。如果是这样的话,更新的(varchar、nvarchar 等)会更好。

【讨论】:

  • 它们都是 varchars 但只有一个 varchars 列会导致填充。仍然感谢您的帮助,非常感谢!
【解决方案4】:

这很棘手。到目前为止所有的回答都是正确的,但他们没有提到可能导致开发人员认为行高无法调整的一件事。 回顾一下……

  • 突出显示要更改高度的 Tablix 行。
  • 更改行属性 CanGrow=False, CanShrink=True
  • 对 Padding 的更改是指单元格内单元格值上方(顶部)和下方(底部)的空间。
  • 这是新功能:如果您的 tablix 与另一个控件相邻,它将锁定该控件的高度,并且不允许您使用行标题向上/向下箭头缩小行。因此,您需要将整个 tablix 拖到某个没有其他控件与之相邻的空白区域。然后行高将不会锁定,您可以将其准确放置在您需要的位置,它会保持原位。然后小心地将 Tablix 移回其固定位置。

正是这种对相邻控件的锁定导致开发人员得出无法调整高度的结论。

【讨论】:

    【解决方案5】:

    在显示/隐藏行和 CanShrink/CanGrow 不起作用时遇到了很大的问题,所以我发现有一个“行可见性”表达式,它显示/隐藏整个行取决于文本框值。

    (右键单击 tablixrow 并选择“行可见性”)

    干杯

    【讨论】:

    • 一直在到处找这个!解决了我的问题。有帮助的一件事是在内容中添加如何打开此窗口。类似于:右键单击行选择器图标,然后选择“行可见性...”
    【解决方案6】:

    我发现了另一件事需要考虑。当您选择要分组的冗长字段然后缩小水平尺寸时,该字段将垂直显示。如果字段长度超出您为组的总垂直长度设置的大小,则最后一行将增加以进行补偿。图像的左侧显示了最后一行的额外空间。一旦我将字段长度调整为小于组的总高度,最后一行就会正常显示。 lengths of rows image

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多