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

Обсуждение Stimulsoft Reports.Net
Аватара пользователя
Андрей Сорокин
Сообщения: 102
Зарегистрирован: 02 июл 2009, 07:31

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

Сообщение Андрей Сорокин » 09 фев 2018, 10:25

Спасибо за ответ!
HighAley
Сообщения: 1958
Зарегистрирован: 08 июн 2011, 07:36

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

Сообщение HighAley » 09 фев 2018, 10:36

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

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

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

Спасибо.
Аватара пользователя
Андрей Сорокин
Сообщения: 102
Зарегистрирован: 02 июл 2009, 07:31

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

Сообщение Андрей Сорокин » 01 мар 2018, 11:29

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

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

Сообщение HighAley » 05 мар 2018, 08:11

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

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

Спасибо.

Ticket reference: #5903
Ivan
Сообщения: 610
Зарегистрирован: 10 авг 2006, 01:40

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

Сообщение Ivan » 20 мар 2018, 14:22

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

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

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

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