如何将图表的宽度与SSRS 2008 R2中的Tablix宽度对齐?或者如何使用DynamicWidth属性?

时间:2014-03-26 10:55:33

标签: reporting-services ssrs-tablix ssrs-2008-r2

我正处于创建SSRS报告的过程中,该报告包含一个Tablix和一个图表,两者都描述了相同的数据,即相同的数据库查询。

Tablix的实际列数由查询返回的行数动态决定。我们以COLUMN-WISE方式显示记录。

示例:
如果查询返回5条记录,则Tablix中将显示5列...
如果查询返回8条记录,则Tablix中将显示8列...

查询返回的记录数是动态的,因此Tablix的宽度是动态的。


现在关于图表,图表的宽度始终保持固定,但我们希望它应该与tablix的宽度相同,这意味着我们要求条形图的条形应与Tablix的列对齐因为每个图表栏都描绘了Tablix每列中的数据。

我们可以手动更改图表的宽度,但它并不总是与Tablix的宽度对齐。


我们尝试过哪些没效果

  • 将图表放在Tablix的第一行内。这没有正确对齐。

  • 我们已经读过,我们可以使用图表的 DynamicWidth DynamicHeight 属性,但我们不知道如何使用它。

任何人都知道我们如何将图表与动态宽度Tablix对齐?

1 个答案:

答案 0 :(得分:1)

列数是动态的,但您知道每列的宽度,因为所有动态列的宽度都相同。您还知道数据集中的行数,因此可以使用DynamicWidth中的表达式使图表宽度等于列宽的总和。

例如,如果动态列的宽度为2.5厘米,并且您有一个名为Dataset1的数据集,那么图表的DynamicWidth属性的表达式将为:

=2.5*CountRows("DataSet1") & "cm"

如果表格中有任何静态列,那么您还需要将其宽度添加到表达式中。


说了这么多,你提到将条形图的条形与每列对齐。如果您希望单个栏与每列中的值相关联,那么您可以选择在动态列的单元格内添加面向列的数据栏,而不是单独的图表。