Как определить - есть ли данные в источнике данных?

Обсуждение Stimulsoft Reports.NET
Ответить
farit2002
Сообщения: 4
Зарегистрирован: 10 окт 2008, 11:37

Как определить - есть ли данные в источнике данных?

Сообщение farit2002 »

Здравствуйте.
у меня такая проблема: отчет в Web, данные берутся из MS SQL 2000.
пишу такой код:

Stimulsoft.Report.StiReport report = StiWebReport1.GetReport();
report.Compile();

if (report.CompiledReport.DataSources["ИсточникДанных3"].IsEmpty)
{
StiWebViewer1.Visible = false ;
}
else
{
StiWebViewer1.Visible = true ;
StiWebViewer1.Report = report ;
}

Данные в отчете есть, но почему то report.CompiledReport.DataSources["ИсточникДанных3"].IsEmpty возвращает true.
не подскажете, как правильно определить, есть ли данные в источнике?
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Как определить - есть ли данные в источнике данных?

Сообщение Edward »

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

Попробуйте, пожалуйста, изменить Ваш код следующим образом:

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

report.Compile();
(report.CompiledReport.DataSources["ИсточникДанных3"] as StiSqlSource).Connect();
Спасибо.
farit2002
Сообщения: 4
Зарегистрирован: 10 окт 2008, 11:37

Как определить - есть ли данные в источнике данных?

Сообщение farit2002 »

сделал так:

Stimulsoft.Report.StiReport report = StiWebReport1.GetReport();
report.Compile();
(report.CompiledReport.DataSources["ИсточникДанных3"] as Stimulsoft.Report.Dictionary.StiSqlSource).Connect();
if (report.CompiledReport.DataSources["ИсточникДанных3"].IsEmpty)
{
StiWebViewer1.Visible = false ;
}
else
{
StiWebViewer1.Report = report;
StiWebViewer1.Visible = true;
}
1. Не нашел типа StiSqlDataSource. нашел только StiSqlSource (если сделал неправильно, то подскажите пожалуйста, в каком namespace лежит StiSqlDataSource).
2. пробовал и так: if (report.CompiledReport.DataSources["ИсточникДанных3"] as Stimulsoft.Report.Dictionary.StiSqlSource).IsEmpty). все равно возвращает true.
farit2002
Сообщения: 4
Зарегистрирован: 10 окт 2008, 11:37

Как определить - есть ли данные в источнике данных?

Сообщение farit2002 »

оказывается все эти свойства (в том числе и IsEmpty) заполняются только после того, как происходит
StiWebViewer1.Report = report;

получается отчет запускается только после того, как он пристыковывается к вьюверу.
Vital
Сообщения: 647
Зарегистрирован: 09 июн 2006, 12:23

Как определить - есть ли данные в источнике данных?

Сообщение Vital »

Здравствуйте,
farit2002 писал(а): получается отчет запускается только после того, как он пристыковывается к вьюверу.
Так и есть если предварительно не запустить построение отчета при помощи метода Render:

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

report.Render();
Спасибо.
Edward
Сообщения: 930
Зарегистрирован: 09 июн 2006, 12:23

Как определить - есть ли данные в источнике данных?

Сообщение Edward »

Да, правильно Вы исправили, не StiSqlDataSource, а StiSqlSource.

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