Решил сделать четырехуровневый отчет удобнее, а именно сделать все уровни разворачивающимися.
Сначала попробовал все данные загнать в один датасет, отсортировал его по данным, которые необходимо загнать в уровни, а далее в отчете расположил бенды таким образом :
GroupHeader1
[Region.Name]
GroupHeader2
[Manager.Name]
GroupHeader3
[Account.Name]
MasterData1
[Offering.Name]
И все заработало как надо, но закрывает(открывает) каждую группу по минуте.
Решил сделать на каждую группу по своему SQL запросу и своему датасету. В отчете бенды разместил подобным образом :
Page1 :
GroupHeader1
[Region.Name]
MasterData1
[SubReport1]
SubReport1:
GroupHeader2
[Manager.Name]
MasterData2
[SubReport1]
SubReport2:
GroupHeader3
[Account.Name]
MasterData3
[SubReport2]
SubReport3:
MasterData3
[Offering.Name]
В этот раз данные внутри группы появляются только после открытия группы с данными того же уровня, стоящей выше в отчете. То есть для того чтобы посмотреть что было продано в Регионе 2, необходимо сначала раскрыть Регион 1, а в Регионе 1 ничего посмотреть вообще невозможно.
Подскажите как быть, пожалуйста :)
Нравится
"Антон Забежалов" написал:закрывает(открывает) каждую группу по минуте
У меня аналогичная ситуация, затрудняющая использование именно параметра DrillDown для групп. Посмотрел профайлером - при каждом открытии/закрытии группы производится заполнение ВСЕГО датасета заново, естественно, это требует время. Борьба понятна - упрощаем запрос, оптимизируем его... а еще на каком-либо уровне оптимизация возможна?
Антон, а датасеты у Вас зависят друг от друга, или независимые? Может, попробовать обойтись без Subreport'ов?
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.
Да, во втором случае датасеты связаны друг с другом.
В принципе проще всего, конечно, было бы обойтись без drilldown, как это сейчас и работает.
Смысл делать раскрывающиеся группы на данный момент - понять что я делаю не так, чтобы не терять времени на это в будущем.
Пока придумал два варианта - первый слишком тугой, второй слишком глючный. Готов к новым идеям, пусть и без сабрепорта :)
Проверю, если DrillDown в Fast Report действительно отрабатывает некорректно, придётся искать обходное решение. Поскольку Fast Report не является разработкой нашей компании.
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.
Антон, добрый день.
К сожалению, все попытки добиться корректного сворачивания групп не увенчались успехом. Получается либо так, как у Вас, либо разворачивает группу корректно, но внутри только одна запись, что тоже недопустимо.
Как вариант обходного решения, могу предложить следующее. Перед формированием отчёта вызывать форму, в которой указывать, какие уровни вложенности отображать. Эти признаки передавать в параметры отчёта и в зависимости от их значений отображать или скрывать соответствующие сабрепорты.
Выкладываю пример реализации подобного отчёта, параметры отображения которого вручную устанавливаются в коде отчёта.
Олег Лабьяк,
разработчик,
3-я линия Службы поддержки Terrasoft.