Событие после выборки данных из БД

Обсуждение Stimulsoft Reports.NET
Аватара пользователя
Андрей Сорокин
Сообщения: 107
Зарегистрирован: 02 июл 2009, 11:31
Откуда: Bryansk, Russia
Контактная информация:

Re: Событие после выборки данных из БД

Сообщение Андрей Сорокин »

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

Re: Событие после выборки данных из БД

Сообщение HighAley »

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

Мы всегда рады вам помочь.
Обращайтесь ещё, если будут вопросы.

Отдельное спасибо Леониду за помощь и объяснения по работе с нашим продуктом.

Спасибо.
Аватара пользователя
Андрей Сорокин
Сообщения: 107
Зарегистрирован: 02 июл 2009, 11:31
Откуда: Bryansk, Russia
Контактная информация:

Re: Событие после выборки данных из БД

Сообщение Андрей Сорокин »

Добрый день,
возникла ещё одна проблема. Я обработал событие StiOptions.Engine.GlobalEvents.ReportEndRender, в случае отсутствия данных генерю Exception чтобы прервать дальнейшее отображение отчёта.
Но, если произошла ошибка выполнения SQL-процедуры, невозможно получить Exception этой ошибки для анализа: по всей видимости исключение генерится после отработки события ReportEndRender. Хотелось бы сначала обработать SQLException, а потом уже выводить сообщение об отсутствии данных, если это произошло не по причине ошибки.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Событие после выборки данных из БД

Сообщение HighAley »

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

На данный момент у нас нет ответа.
Нам надо некоторое время, чтобы найти решение для вас.

Спасибо.

Ticket reference: #5903
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Re: Событие после выборки данных из БД

Сообщение Ivan »

Здравствуйте.
Андрей Сорокин писал(а):Но, если произошла ошибка выполнения SQL-процедуры, невозможно получить Exception этой ошибки для анализа: по всей видимости исключение генерится после отработки события ReportEndRender. Хотелось бы сначала обработать SQLException, а потом уже выводить сообщение об отсутствии данных, если это произошло не по причине ошибки.
В нашем продукте часто используются операторы try...catch.
В некоторых случаях ошибка "проглатывается", в некоторых пробрасывается дальше.
Вызов события ReportEndRender происходит в finally блоке одного из опeраторов try..catch после построения всего отчёта, и однозначно уже после ошибки в SQL-процедуре.
В данном случае неясно, где именно происходит ошибка, но похоже что она "проглатывается".

Если отчёт не начинает строиться, т.е. дело не доходит до вызова метода BeginRender первой страницы,
то как вариант решения проблемы, вы можете добавить в отчёт переменную типа bool, и устанавливать её значение в true в событии BeginRender первой страницы.
А в событии EndRender проверять её значение.
Если false - значит скорее всего произошла ошибка при получении данных, и до построения отчёта дело не дошло.

Чтобы дать более конкретные рекомендации - вышлите пример проекта, на котором проблема воспроизводится.

Спасибо.
Ответить