Поскольку вы используете SSRS 2012, для достижения этой цели можно использовать совокупность совокупных функций.
Скажем, у меня есть такая диаграмма, похожая на вашу:
![введите здесь описание изображения](https://i.stack.imgur.com/keP0f.png)
С соответствующими данными у него та же проблема, что и на вашем снимке экрана, даже с выражением в интервале оси Y:
![введите здесь описание изображения](https://i.stack.imgur.com/7317v.png)
т. е. здесь 8 строк, поэтому для выражения будет задано значение Auto, но поскольку в группах не более трех строк, мы получаем дроби по оси Y.
Мы можем обойти это, найдя максимальное значение каждой из этих групп.
Группа категорий будет иметь имя:
![введите здесь описание изображения](https://i.stack.imgur.com/KXVhs.png)
Здесь я назвал его MonthGroup. При этом мы можем изменить выражение интервала оси Y:
=IIf(Max(CountRows("MonthGroup")) <= 5, 1, Nothing)
т. е. если ‹=5, интервал равен 1, в противном случае просто передайте значение NULL, т. е. пусть SSRS определит интервал.
Итак, теперь мы проверяем Max
уровня группы категорий CountRows
; в моем примере это 3, так что теперь мы получаем необходимые интервалы оси:
![введите здесь описание изображения](https://i.stack.imgur.com/NfqEE.png)
Изменить примечание:
Раньше у меня было выражение оси Y как:
=IIf(Max(CountRows("MonthGroup")) <= 5, 1, "Auto")
Но после публикации я заметил, что в некоторых случаях это вызывало предупреждение; предположительно потому, что Auto
не является допустимым интервалом; это просто заполнитель, используемый SSRS. Обновленное выражение:
=IIf(Max(CountRows("MonthGroup")) <= 5, 1, Nothing)
Работает как положено без предупреждений.
person
Ian Preston
schedule
08.08.2013