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

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

Добавлено: 10 окт 2008, 11:46
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.
не подскажете, как правильно определить, есть ли данные в источнике?

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

Добавлено: 10 окт 2008, 17:16
Edward
Здравствуйте.

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

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

report.Compile();
(report.CompiledReport.DataSources["ИсточникДанных3"] as StiSqlSource).Connect();
Спасибо.

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

Добавлено: 13 окт 2008, 06:00
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.

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

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

получается отчет запускается только после того, как он пристыковывается к вьюверу.

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

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

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

report.Render();
Спасибо.

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

Добавлено: 13 окт 2008, 13:52
Edward
Да, правильно Вы исправили, не StiSqlDataSource, а StiSqlSource.

Спасибо.