【问题标题】:How do I align the width of chart with the width of Tablix in SSRS 2008 R2 ? OR how to use DynamicWidth Property?如何在 SSRS 2008 R2 中将图表的宽度与 Tablix 的宽度对齐?或者如何使用 DynamicWidth 属性?
【发布时间】:2014-03-26 10:55:32
【问题描述】:

我正在创建一个 SSRS 报告,该报告由一个 tablix 和一个图表组成,两者都描述了相同的数据,即相同的数据库查询。

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

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

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


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

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


我们尝试过的没有奏效

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

  • 我们已经了解到我们可以使用图表的 DynamicWidthDynamicHeight 属性,但我们不知道如何使用它。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    如果表中有任何静态列,则还需要将这些列的宽度添加到表达式中。


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

    【讨论】:

    • 从逻辑上讲,正如您所说,它应该可以工作,但是如果列数较少,图表的宽度会变高,如果列数很大,则图表的宽度会变短。它不遵循乘法的数学规则。具有拉伸效果,可以增加或减少条形图及其周围区域的宽度。
    • 我用 SSRS 2012 对此进行了测试并且它有效,所以我认为这应该适用于 2008 R2,除非还有其他事情发生。您的图表是否在另一个数据区域内,例如列表、矩形还是表格?
    猜你喜欢
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多