Страница 1 из 1

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

Добавлено: 11 июл 2010, 14:05
Андрей Сорокин
Добрый день, хотелось бы в случае отсутствия данных (пустой выборки из БД) не выводить окно отчёта, а выдавать сообщение на экран.
Например, можно как-нибудь проинициализировать переменную 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("Нет данных для отчёта");
}
Спасибо!

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

Добавлено: 11 июл 2010, 20:59
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();
Спасибо.