SSRS折线图动态Y轴

时间:2013-08-08 14:02:06

标签: reporting-services linechart ssrs-2012

我有一个折线图,其中Y值设置为

=CountRows()

我有一个分组

的类别组
=CDate(Fields!END_MONTH_NB.Value)

我试图动态设置Y轴的间隔,以便在范围太小时不会出现分数(见下文)。

Fractions on Y axis

我尝试将间隔表达式设置为

=iif(CountRows() <= 5, 1, "Auto")

如果行数小于或等于5,则可以正常工作,但我真正需要的是CountRows()将在我的类别组的上下文中返回的最大值。

知道怎么做到这一点吗?

1 个答案:

答案 0 :(得分:4)

由于您正在使用SSRS 2012,因此您可以使用聚合功能的聚合来实现此目的。

说我有这样的图表,类似于你的图表:

enter image description here

使用适当的数据,它与截图有相同的问题,即使在Y轴间隔中有表达式:

enter image description here

即。这里有8行,因此表达式将设置为自动,但由于这些组的行数不超过三行,因此我们在Y轴上得到分数。

我们可以通过查找每个组计数的最大值来解决这个问题。

类别组将具有名称:

enter image description here

我在这里称它为 MonthGroup 。有了这个,我们可以改变Y轴间隔表达式:

=IIf(Max(CountRows("MonthGroup")) <= 5, 1, Nothing)

即。 if&lt; = 5,interval 1 ,否则只传递NULL值,即让SSRS确定间隔。

现在我们正在检查类别组级Max的{​​{1}};在我的例子中这是3,所以现在我们得到了所需的轴间隔:

enter image description here

修改记事

以前我将Y轴表达式设为:

CountRows

但在发布后我注意到这在某些情况下引起了警告;大概是因为=IIf(Max(CountRows("MonthGroup")) <= 5, 1, "Auto") 不是有效间隔;它只是SSRS使用的占位符。更新的表达式:

Auto

按预期工作,没有任何警告。