Страница 1 из 1
Проблемы отчета с детализацией
Добавлено: 18 окт 2011, 07:56
IgorEvd
Добрый день. Помогите пожалуйста решить следующую проблему:
Имею отчет с детализацией в двух вариантах.
1. В одном отчете две страницы. При открытии второй страницы весь отчет, включая первую страницу, перестраивается заново. В случае, когда выводится большое количество данных переход на вторую страницу занимает слишком долгое время.
2. То же самое, но вторая страница находится в другом файле отчета. Работает быстро, но не знаю, как передать коннект к базе данных из основного отчета в подчиненный. То есть, основной отчет вызываю из программы и передаю туда коннект к базе. А как быть с подчиненным отчетом? Он не знает, куда коннектиться.
Игорь Евдокимов
Проблемы отчета с детализацией
Добавлено: 19 окт 2011, 12:22
Aleksey
Здравствуйте Игорь,
Как вариант, вы можете подписаться на событие GetDrillDownReport и в нем передавать строку подключения для второго отчета.
Код: Выделить всё
StiOptions.Engine.GlobalEvents.GetDrillDownReport += new Stimulsoft.Report.Events.StiGetDrillDownReportEventHandler(GlobalEvents_GetDrillDownReport);
Спасибо.
Проблемы отчета с детализацией
Добавлено: 21 окт 2011, 13:53
IgorEvd
Спасибо за ответ. Буду пробовать.
Заодно еще один вопрос: есть ли какая-либо возможность при переходе в файл подчиненного отчета выбирать имя файла. Например есть список документов нескольких видов: доверенности, накладные, акты и т.д. Есть желание при клике в строку документа открывать подчиненный отчет с детализацией. При этом для разных типов документов должны быть разные формы (файлы отчетов). Есть ли возможность это сделать?
PS Вы уж извините, что хотим от вашего продукта того, что может быть вы и не задумывали, но уж больно добротный продукт получился. Спасибо за него
Игорь
Проблемы отчета с детализацией
Добавлено: 24 окт 2011, 06:49
HighAley
Здравствуйте, Игорь.
IgorEvd писал(а):Заодно еще один вопрос: есть ли какая-либо возможность при переходе в файл подчиненного отчета выбирать имя файла. Например есть список документов нескольких видов: доверенности, накладные, акты и т.д. Есть желание при клике в строку документа открывать подчиненный отчет с детализацией. При этом для разных типов документов должны быть разные формы (файлы отчетов). Есть ли возможность это сделать?
PS Вы уж извините, что хотим от вашего продукта того, что может быть вы и не задумывали, но уж больно добротный продукт получился. Спасибо за него
Попробуйте для этих целей использовать событие "Перед печатью" (Before Print). Там можно изменить отчёт детализации.
Код: Выделить всё
Text1_Interaction.DrillDownReport = "d:\DrillDownReport2.mrt";
Спасибо.
Проблемы отчета с детализацией
Добавлено: 02 ноя 2011, 08:59
IgorEvd
Добрый день. Наконец руки дошли попробовать предложенный Вами способ передачи строки коннекта из основного отчета в подчиненный. К сожалению пока не очень получается. Не вызывается обработчик события GetDrillDownReport.
Я не нашел способа пристегнуть тестовые файлы к сообщению, поэтому выложил
сюда
Игорь
Проблемы отчета с детализацией
Добавлено: 03 ноя 2011, 12:25
Aleksey
Здравствуйте,
Попробуйте использовать следующий код в событии GetDrillDownReport главного отчета:
Код: Выделить всё
((Stimulsoft.Report.Dictionary.StiSqlDatabase)e.Report.Dictionary.Databases[0]).ConnectionString =
((Stimulsoft.Report.Dictionary.StiSqlDatabase)this.Dictionary.Databases[0]).ConnectionString;
e.Report.Compile();
Спасибо.
Проблемы отчета с детализацией
Добавлено: 07 ноя 2011, 16:46
IgorEvd
Добрый день,
Мне очень помог Ваш совет по поводу вызова подчиненного отчета. Однако возник еще один вопрос: в разные подчиненные отчеты мне необходимо передавать разные параметры. Можно ли динамически менять параметры DrillDown отчета, так же, как я меняю имя файла?
Игорь
Проблемы отчета с детализацией
Добавлено: 08 ноя 2011, 07:40
Aleksey
Здравствуйте Игорь,
Динамически изменить параметры, скорее всего, не получится.
Возможно есть другие варианты решения, все зависит от самой задачи, какие параметры необходимо передавать.
Спасибо.
Проблемы отчета с детализацией
Добавлено: 24 ноя 2011, 08:40
IgorEvd
Добрый день.
Возвращаясь к проблеме передачи коннекта в подчиненный отчет:
Попробовали второй предложенный способ
Попробуйте использовать следующий код в событии GetDrillDownReport главного отчета:
Code:
((Stimulsoft.Report.Dictionary.StiSqlDatabase)e.Report.Dictionary.Databases[0]).ConnectionString =
((Stimulsoft.Report.Dictionary.StiSqlDatabase)this.Dictionary.Databases[0]).ConnectionString;
e.Report.Compile();
Увы, способ не сработал. Прилагаю
файлы с результатами наших изысканий. Посмотрите пожалуйста, все ли мы сделали правильно.
PS Собираетесь ли вы решать данную проблему в следующем релизе? Если честно - возможность передачи коннекта крайне нужна уже сейчас. Во первых сейчас можно коннектиться только к основной базе данных, а иногда нужно и к архивной и к резервной. А во вторых - нет возможности разрабатывать отчеты на development сервере а тестировать/работать на production сервере, так как разные инстансы базы данных.
Заранее спасибо,
С уважением
Игорь
Проблемы отчета с детализацией
Добавлено: 25 ноя 2011, 10:42
Aleksey
Здравствуйте,
Обнаружили проблему. Данный код не работет, если DrillDown отчет и код установлены для компонента датабэнд. Пожалуйста, перенесите данный код с датабэнда, на текстовый компонент.
Данную проблему добавили в наш to-do лист, будем ей заниматься после релиза, который будет в декабре.
Спасибо.