我有一个折线图,其中Y值设置为
=CountRows()
我有一个分组
的类别组=CDate(Fields!END_MONTH_NB.Value)
我试图动态设置Y轴的间隔,以便在范围太小时不会出现分数(见下文)。
我尝试将间隔表达式设置为
=iif(CountRows() <= 5, 1, "Auto")
如果总行数小于或等于5,则可以正常工作,但我真正需要的是CountRows()将在我的类别组的上下文中返回的最大值。
知道怎么做到这一点吗?
答案 0 :(得分:4)
由于您正在使用SSRS 2012,因此您可以使用聚合功能的聚合来实现此目的。
说我有这样的图表,类似于你的图表:
使用适当的数据,它与截图有相同的问题,即使在Y轴间隔中有表达式:
即。这里有8行,因此表达式将设置为自动,但由于这些组的行数不超过三行,因此我们在Y轴上得到分数。
我们可以通过查找每个组计数的最大值来解决这个问题。
类别组将具有名称:
我在这里称它为 MonthGroup 。有了这个,我们可以改变Y轴间隔表达式:
=IIf(Max(CountRows("MonthGroup")) <= 5, 1, Nothing)
即。 if&lt; = 5,interval 1 ,否则只传递NULL值,即让SSRS确定间隔。
现在我们正在检查类别组级Max
的{{1}};在我的例子中这是3,所以现在我们得到了所需的轴间隔:
修改记事
以前我将Y轴表达式设为:
CountRows
但在发布后我注意到这在某些情况下引起了警告;大概是因为=IIf(Max(CountRows("MonthGroup")) <= 5, 1, "Auto")
不是有效间隔;它只是SSRS使用的占位符。更新的表达式:
Auto
按预期工作,没有任何警告。