Tablix将其他元素推倒

时间:2018-07-22 08:12:56

标签: reporting-services ssrs-2012

我有一个带有Tablix的报告。我只需要将Tablix固定在一个固定位置,而不应该将其他元素向下推。如果说有4行,则在指定的空间中将是可见的;如果更多,则该行将不可见,并且不应该按下其他元素。 我尝试了几种方法来防止

  1. 在矩形(用作容器)中添加了tablix,以便将其分组  不会压低其他元素(无效)
  2. 在报告= true中启用消耗空白空间(无效)
  3. 将项目保持在一起的属性在矩形中设置为true(无效)

还有其他方法可以不向下推报表中的元素,即使Tablix提供了更多的行。它只应显示上述大小的行。

编辑:1(7/28/2018)

enter image description here

如果表中有更多行,则将以下所有三个元素下推。 如果可能的话,我必须通过自动减小大小来适合此表中的行,否则它不应下推元素。 另外,如果Tablix的行较少,则元素将向上移动。我只需要保持元素(Expr)应该保持在同一位置即可。

3 个答案:

答案 0 :(得分:1)

您仍然没有发布设计,但是无论如何,这就是我认为您想要的。

使用相同大小的矩形来设置您要覆盖的区域的基本思想。然后,随着表中行数的增加,我们将在合理范围内减小行高。由于您不能直接更改行高,因此可以通过将行高设置为很小并调整字体来解决此问题,只要单元格上的can grow选项可以增长以适应字体大小即可更改行高的方法。

基本步骤。

创建报告并添加一个矩形,该矩形是您希望表的最大大小。在我的示例中,高度为38mm。

在矩形内创建表格。我发现这样更容易在外部创建它,然后将其剪切并粘贴到内部,仅将其拖动到矩形上将不起作用。

根据需要在矩形下方放置其他文本框。在报告属性中设置“使用容器空白”。

接下来,我们需要确定可接受的最大和最小字体大小。在这个基本示例中,我仅使用10、12、14点这3种尺寸。如果您想使用更多字体,则可以编写一个表达式来更精确地缩放字体,但您会明白的。

您需要确定使用最小字体大小时可放入矩形的最大行数,在我的情况下,是10pt字体下的5行。您的查询将需要考虑此数字,并且永远不会返回比该数目更多的行。

在表上,单击详细信息行的单击行选择器(这基本上选择了该行中的所有单元格)。接下来,将字体大小属性更改为表达式。在这个简单的示例中,我使用了它。

SELECT (SUM(UnitPrice)/150) FROM OrderDetails
WHERE PurchaseOrderId IS BETWEEN 1050 AND 1200
GO

接下来设置行的高度,选择行上的任何单元格并将其高度设置为较小的值,我用了4mm,但是只要它小到可以显示就没有关系。

在我的示例中,为了进行测试,我添加了一个“ topx”参数,并使用此参数过滤了数据集,但这仅用于测试。

最终设计看起来像这样。我为矩形添加了背景色,以便您可以看到它在填充之前如何保持静态。

enter image description here

然后运行各行,就像这样

enter image description here

enter image description here

enter image description here

enter image description here

最后,只有当我超过最大值(在这种情况下为5行)时,下面的文本才会向下移动。

enter image description here

答案 1 :(得分:0)

如果您希望报告保持静态,为什么不截取数据的屏幕截图并将其作为图像包含在报告中?

没有一种严肃的报告工具会“忽略”您使用数据集传递给它的记录,因此您必须在此处自行“忽略”所有不需要的数据。将数据集中的数据限制为仅4行(也许使用SELECT TOP 4 ...)。

答案 2 :(得分:0)

您可以在数据集中添加一列(称为行号),以显示数据的行号。然后,在Tablix过滤器中,可以将过滤器设置为仅显示“ RowNumber”列中的值,该值小于或等于要在Tablix中显示的行数。

您可以使用相同的概念来限制查询中返回的行数,但是如果不知道如何获取数据,就无法提供帮助。