I have a line chart where the Y value is set to

=CountRows()

and I have a Category Group which groups on

=CDate(Fields!END_MONTH_NB.Value)

I am trying to set the interval of the Y axis dynamically such that fractions do not appear when the range is too small (see below).

Fractions on Y axis

I tried setting the interval expression to

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

which works fine if the total number of rows is less than or equal to 5, but what I really need is the maximum that CountRows() will return in the context of my Category Group.

Any idea how to accomplish this?

有帮助吗?

解决方案

Since you're using SSRS 2012, you can use the aggregate of an aggregate functionality to achieve this.

Say I have a chart like this, similar to yours:

enter image description here

With the appropriate data, it has the same issue as your screenshot, even with an expression in the Y-Axis interval:

enter image description here

i.e. here there are 8 rows, so the expression will be set to Auto, but because the groups have no more than three rows we get fractions in the Y axis.

We can get around this by finding the maximum of each of these group counts.

The Category Group will have a name:

enter image description here

Here I've called it MonthGroup. With this, we can change the Y Axis interval expression:

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

i.e. if <=5, interval is 1, otherwise just pass a NULL value, i.e. let SSRS determine the interval.

So now we're checking the Max of the Category Group level CountRows; this is 3 in my example so now we're getting the required axis intervals:

enter image description here

Edit note:

Previously I had the Y Axis expression as:

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

But after posting I noticed this was causing a warning in some circumstances; presumably because Auto is not a valid interval; it's just a placeholder used by SSRS. The updated expression:

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

Works as expected without warnings.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top