Проверка на отсутствие данных

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

Проверка на отсутствие данных

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

Добрый день, хотелось бы в случае отсутствия данных (пустой выборки из БД) не выводить окно отчёта, а выдавать сообщение на экран.
Например, можно как-нибудь проинициализировать переменную emptyData в данном случае?

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

StiReport report = new StiReport();
...
report.Dictionary.Databases.Clear();
report.Dictionary.Databases.Add(new StiSqlDatabase("Connection", "ConnectionString"));
bool emptyData;
if (!emptyData)
{
    report.Show(true);
}
else
{
    MessageBox.Show("Нет данных для отчёта");
}
Спасибо!
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Проверка на отсутствие данных

Сообщение Jan »

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

В любом случае отчет придется запустить на построение. Иначе, генератору отчетов неоткуда узнать о том, что данных нет. В событии BeforePrintEvent первой страницы разместите такой код:

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

if (mydatasource.Count == 0)
this.Stop = true;
При построении отчета:

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

report.Render();
if (!report.Stop)
  report.Show();
Если отчет остановлен, то не показывать отчет.

Есть еще один способ. Если страниц при построении отчета должно быть более одной, то можно построить отчет и потом проверить количество страниц:

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

report.Render();
if (report.RenderedPages.Count > 1)
report.Show();
Спасибо.
Ответить