Службы отчетов SQL Server: объединение начального уровня рендеринга и интерактивного расширения - PullRequest
0 голосов
/ 03 декабря 2009

У меня есть отчет в SSRS 2008, который показывает данные, агрегированные по четырем уровням группировки. Я использую элемент управления ASP.NET ReportViewer для отображения отчета в моей веб-форме.

Если я покажу все четыре уровня подробно, отчет получится очень очень длинным (сотни страниц). Поэтому я хотел бы установить уровень по умолчанию, чтобы показать (1-4), когда я отображать отчет - я делаю это, имея параметр отчета типа INT (@ShowLevel), который я устанавливаю при выводе отчета для первый раз.

Строки в tablix устанавливаются как скрытые, если уровень, на котором они находятся, превышает значение @ShowLevel, например, если @ShowLevel = 2, для строк на уровне 3 и уровне 4 их свойство "Hidden" будет установлено в значение True и не будет отображаться.

Пока отлично - все работает хорошо и все.

НО: теперь клиент хотел бы сначала визуализировать отчет до уровня 2, но затем интерактивно развернуть некоторые узлы уровня 2, чтобы показать их подузлы уровня 3.

Как мне справиться с этим? Поскольку на 3-м уровне скрытое имеет значение «истина», узел будет «расширяться», но под ним ничего не показано ... есть ли способ для узла 3-го уровня проверить наличие

Hidden = (@ShowLevel < 3) OR (group-parent is expanded) 

или что-то в этом роде, чтобы поддерживать начальный уровень рендеринга (установленный с помощью параметра отчета), но все же разрешать интерактивное расширение отдельных узлов даже после этого начального «уровня отображения»?

Кажется, я не могу понять, как сделать это правильно и легко ......

Есть идеи? Советы? Советы и хитрости ??

1 Ответ

2 голосов
/ 03 декабря 2009

рассматривали ли вы переключение в качестве опции в службах Reporting Services. То, что вы описываете, я делал много раз. Попробуйте это, выделите строку группы, как только выделите, проверьте свойства этой строки группы. Одно из свойств называется «Видимость». Разверните это свойство. Затем вы увидите «ToggleItem», то, что позволяет сделать элемент toggle - это переключить целую группу, щелкнув по другому объекту. Например, над этой группой вы можете создать текстовое поле, которое вызывает переключение.

Таким образом, вы отображаете только те данные, которые вам нужны, но позволяете клиенту переключаться между уровнями.

Вот пример для вас:

альтернативный текст http://img10.imageshack.us/img10/5015/123200984045am.jpg

PS: Вам повезло в другом потоке с файлами отчетов служб отчетов, использующими db ReportServer?

...