Программная загрузка данных в Sql DataSource

Обсуждение Stimulsoft Reports.NET
Ответить
Serpentariy
Сообщения: 31
Зарегистрирован: 19 июн 2009, 11:55
Откуда: Сыктывкар

Программная загрузка данных в Sql DataSource

Сообщение Serpentariy »

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

Источниками данных для отчёта являются хранимые процедуры Sql Server. Свойство ConnectOnStart источников данных установлено в false.
Результатом работы нижеприведённого кода в версии Reports.Net 2010.1 было отбражение отчёта с нужными данными:

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

      StiReport rpt = new StiReport();
      rpt.Load("Report.mrt");
      rpt.Compile();
      rpt.Show();
В версии Reports.Net 2011.3 этот код выдаёт пустую страницу. Судя по профайлеру, не происходит выполнение хранимых процедур являющихся источниками данных.
Подскажите, как это исправить?
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Программная загрузка данных в Sql DataSource

Сообщение Aleksey »

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

Если свойство ConnectOnStart установлено в false, то в коде отчета необходимо самому выполнять следующий код:
DataSourceName.Connect()
Иначе не будет происходить подключение и не будут получаться данные.

Спасибо.
Serpentariy
Сообщения: 31
Зарегистрирован: 19 июн 2009, 11:55
Откуда: Сыктывкар

Программная загрузка данных в Sql DataSource

Сообщение Serpentariy »

Меня интересует возможность выполнения кода: DataSourceName.Connect() не в коде отчёта, а в коде приложения вызывающего отчёт на построение.
Serpentariy
Сообщения: 31
Зарегистрирован: 19 июн 2009, 11:55
Откуда: Сыктывкар

Программная загрузка данных в Sql DataSource

Сообщение Serpentariy »

Добавил в дизайнере отчётов на событие Report.BeginRender код: DataSourceName.Connect(). При просмотре отчёта из дизайнера выполняется получение данных с сервера и формируется отчёт. Запуск отчёта на выполнение программно не даёт никаких результатов. Выходит пустая страница. Что я делаю не так?

До и после DataSourceName.Connect() вставил System.Windows.Forms.MessageBox.Show("Тест"). При программном запуске отчёта 2 раза выходят сообщения со
словом "Тест", а отчёт по прежнему выходит пустой. Почему не происходит соединение с данными?
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Программная загрузка данных в Sql DataSource

Сообщение Aleksey »

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

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

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

    report.Load();
    report.Compile();
    report.CompiledReport.Pages[0].BeforePrint += new EventHandler(Form1_BeforePrint);
    report.Render();
    report.Show();
    ...

void Form1_BeforePrint(object sender, EventArgs e)
{
    ((StiPage)sender).Report.Dictionary.DataSources["Categories"].Connect();
}
Спасибо.
Serpentariy
Сообщения: 31
Зарегистрирован: 19 июн 2009, 11:55
Откуда: Сыктывкар

Программная загрузка данных в Sql DataSource

Сообщение Serpentariy »

Спасибо. Данный код работает.
Andrew
Сообщения: 586
Зарегистрирован: 09 июн 2006, 12:22

Программная загрузка данных в Sql DataSource

Сообщение Andrew »

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

Отлично. Всегда рады помочь.

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