Проблемы отчета с детализацией

Обсуждение Stimulsoft Reports.NET
Ответить
IgorEvd
Сообщения: 16
Зарегистрирован: 09 окт 2010, 19:27

Проблемы отчета с детализацией

Сообщение IgorEvd »

Добрый день. Помогите пожалуйста решить следующую проблему:
Имею отчет с детализацией в двух вариантах.
1. В одном отчете две страницы. При открытии второй страницы весь отчет, включая первую страницу, перестраивается заново. В случае, когда выводится большое количество данных переход на вторую страницу занимает слишком долгое время.
2. То же самое, но вторая страница находится в другом файле отчета. Работает быстро, но не знаю, как передать коннект к базе данных из основного отчета в подчиненный. То есть, основной отчет вызываю из программы и передаю туда коннект к базе. А как быть с подчиненным отчетом? Он не знает, куда коннектиться.

Игорь Евдокимов
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Проблемы отчета с детализацией

Сообщение Aleksey »

Здравствуйте Игорь,

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

Код: Выделить всё

StiOptions.Engine.GlobalEvents.GetDrillDownReport += new Stimulsoft.Report.Events.StiGetDrillDownReportEventHandler(GlobalEvents_GetDrillDownReport);
Спасибо.
IgorEvd
Сообщения: 16
Зарегистрирован: 09 окт 2010, 19:27

Проблемы отчета с детализацией

Сообщение IgorEvd »

Спасибо за ответ. Буду пробовать.

Заодно еще один вопрос: есть ли какая-либо возможность при переходе в файл подчиненного отчета выбирать имя файла. Например есть список документов нескольких видов: доверенности, накладные, акты и т.д. Есть желание при клике в строку документа открывать подчиненный отчет с детализацией. При этом для разных типов документов должны быть разные формы (файлы отчетов). Есть ли возможность это сделать?

PS Вы уж извините, что хотим от вашего продукта того, что может быть вы и не задумывали, но уж больно добротный продукт получился. Спасибо за него

Игорь
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Проблемы отчета с детализацией

Сообщение HighAley »

Здравствуйте, Игорь.
IgorEvd писал(а):Заодно еще один вопрос: есть ли какая-либо возможность при переходе в файл подчиненного отчета выбирать имя файла. Например есть список документов нескольких видов: доверенности, накладные, акты и т.д. Есть желание при клике в строку документа открывать подчиненный отчет с детализацией. При этом для разных типов документов должны быть разные формы (файлы отчетов). Есть ли возможность это сделать?

PS Вы уж извините, что хотим от вашего продукта того, что может быть вы и не задумывали, но уж больно добротный продукт получился. Спасибо за него
Попробуйте для этих целей использовать событие "Перед печатью" (Before Print). Там можно изменить отчёт детализации.

Код: Выделить всё

Text1_Interaction.DrillDownReport = "d:\DrillDownReport2.mrt";
Спасибо.
IgorEvd
Сообщения: 16
Зарегистрирован: 09 окт 2010, 19:27

Проблемы отчета с детализацией

Сообщение IgorEvd »

Добрый день. Наконец руки дошли попробовать предложенный Вами способ передачи строки коннекта из основного отчета в подчиненный. К сожалению пока не очень получается. Не вызывается обработчик события GetDrillDownReport.

Я не нашел способа пристегнуть тестовые файлы к сообщению, поэтому выложил сюда


Игорь
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Проблемы отчета с детализацией

Сообщение Aleksey »

Здравствуйте,

Попробуйте использовать следующий код в событии GetDrillDownReport главного отчета:

Код: Выделить всё

((Stimulsoft.Report.Dictionary.StiSqlDatabase)e.Report.Dictionary.Databases[0]).ConnectionString = 
      ((Stimulsoft.Report.Dictionary.StiSqlDatabase)this.Dictionary.Databases[0]).ConnectionString;
e.Report.Compile();
Спасибо.
IgorEvd
Сообщения: 16
Зарегистрирован: 09 окт 2010, 19:27

Проблемы отчета с детализацией

Сообщение IgorEvd »

Добрый день,
Мне очень помог Ваш совет по поводу вызова подчиненного отчета. Однако возник еще один вопрос: в разные подчиненные отчеты мне необходимо передавать разные параметры. Можно ли динамически менять параметры DrillDown отчета, так же, как я меняю имя файла?


Игорь
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Проблемы отчета с детализацией

Сообщение Aleksey »

Здравствуйте Игорь,

Динамически изменить параметры, скорее всего, не получится.
Возможно есть другие варианты решения, все зависит от самой задачи, какие параметры необходимо передавать.

Спасибо.
IgorEvd
Сообщения: 16
Зарегистрирован: 09 окт 2010, 19:27

Проблемы отчета с детализацией

Сообщение 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 сервере, так как разные инстансы базы данных.

Заранее спасибо,
С уважением
Игорь
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Проблемы отчета с детализацией

Сообщение Aleksey »

Здравствуйте,

Обнаружили проблему. Данный код не работет, если DrillDown отчет и код установлены для компонента датабэнд. Пожалуйста, перенесите данный код с датабэнда, на текстовый компонент.
Данную проблему добавили в наш to-do лист, будем ей заниматься после релиза, который будет в декабре.

Спасибо.
Вложения
Report_modified.mrt
(179.58 КБ) 367 скачиваний
Ответить