【问题标题】:SSRS Line Chart Dynamic Y AxisSSRS折线图动态Y轴
【发布时间】:2013-08-08 14:02:05
【问题描述】:

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

=CountRows()

我有一个类别组,该类别组在

=CDate(Fields!END_MONTH_NB.Value)

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

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

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

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

知道如何做到这一点吗?

【问题讨论】:

  • 这是什么特定版本的SSRS?

标签: reporting-services linechart ssrs-2012


【解决方案1】:

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

假设我有一张这样的图表,和你的类似:

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

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

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

类别组将有一个名称:

这里我称之为MonthGroup。有了这个,我们可以改变 Y 轴的区间表达式:

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

即如果 1,否则只传递一个 NULL 值,即让 SSRS 确定区间。

所以现在我们正在检查类别组级别CountRowsMax;在我的示例中这是 3,所以现在我们得到了所需的轴间隔:

编辑注释:

以前我的 Y 轴表达式为:

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

但在发布后我注意到这在某些情况下会引起警告;大概是因为Auto 不是有效区间;它只是 SSRS 使用的占位符。更新后的表达式:

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

按预期工作,没有警告。

【讨论】:

  • 工作就像一个魅力。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多