如何计算SSRS tablix中的行高?

时间:2010-07-30 00:59:43

标签: sql-server reporting-services

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

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

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

导致此行为的原因是什么?行高通常如何计算?

6 个答案:

答案 0 :(得分:6)

关于发生的事情有几种可能性:

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

答案 1 :(得分:4)

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

  • 填充:2pt,2pt,0pt,0pt
  • VerticalAlign:Middle
  • CanGrow:False
  • CanShrink:False

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

  • 突出显示要更改高度的Tablix行。
  • 更改行属性CanGrow = False,CanShrink = True
  • 对填充的更改是指单元格中单元格值的上方(顶部)和下方(底部)的空间。
  • 这是新事物:如果您的Tablix与另一个控件相邻,它将锁定到该控件高度,不会让您使用行标题向上/向下箭头缩小行。因此,您需要将整个Tablix拖动到某个打开的空白区域,而不需要与其相邻的其他控件。然后行高不会锁定,您可以将它准确放置在您需要的位置,它将保持不变。然后小心地将Tablix移回它的永久位置。

这种对相邻控件的锁定导致开发人员断定高度无法调整。

答案 4 :(得分:1)

显示/隐藏行和CanShrink / CanGrow din的工作存在巨大问题,所以我发现有一个" Row visibillity"表达式,显示/隐藏整行取决于文本框值。

(右键单击tablixrow并选择"行可见性") Show/Hide row visibility

干杯

答案 5 :(得分:0)

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