我有一个折线图,其中Y值设置为
=CountRows()
我有一个类别组
=CDate(Fields!END_MONTH_NB.Value)
我正在尝试动态设置Y轴的间隔,以使当范围太小时不会出现分数(请参见下文)。
我尝试将间隔表达式设置为
=iif(CountRows() <= 5, 1, "Auto")
如果总行数小于或等于5,这很好用,但是我真正需要的是CountRows()在我的类别组的上下文中返回的最大值。
任何想法如何做到这一点?
由于您使用的是SSRS 2012,因此可以使用汇总功能的汇总来实现此目的。
假设我有一个类似于您的图表,如下所示:
使用适当的数据,即使使用Y轴间隔中的表达式,它也与您的屏幕截图具有相同的问题:
也就是说,这里有8行,因此表达式将设置为Auto,但是由于组的行数不超过3行,因此我们在Y轴上得到了分数。
我们可以通过找到每个组计数的最大值来解决此问题。
该类别组将有一个名字:
在这里,我将其称为MonthGroup。这样,我们可以更改Y轴间隔表达式:
=IIf(Max(CountRows("MonthGroup")) <= 5, 1, Nothing)
即,如果<= 5,则interval为1,否则只需传递一个NULL值,即让SSRS确定间隔。
因此,现在我们检查Max
类别组级别的CountRows
;在我的示例中为3,因此现在我们获得了所需的轴间隔:
编辑笔记:
以前,我的Y轴表达式为:
=IIf(Max(CountRows("MonthGroup")) <= 5, 1, "Auto")
但是发布后,我注意到这在某些情况下会引起警告。大概是因为Auto
这不是一个有效的时间间隔;它只是SSRS使用的占位符。更新后的表达式:
=IIf(Max(CountRows("MonthGroup")) <= 5, 1, Nothing)
可以正常工作而不会发出警告。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句