Как заполнить DataSet отчета из WindowsForms

Обсуждение Stimulsoft Reports.NET
Ответить
andry111@mail.ru
Сообщения: 2
Зарегистрирован: 04 авг 2016, 15:48

Как заполнить DataSet отчета из WindowsForms

Сообщение andry111@mail.ru »

Добрый день

В отчете есть источник данных DataSet
Необходимо заполнить его из WindowsForms приложения
Подскажите где почитать про то как это сделать.

Спасибо.
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Re: Как заполнить DataSet отчета из WindowsForms

Сообщение Леонид »

День добрый!

В самом простом случае, допустим на событие OnClick какой-нибудь кнопки, это будет выглядеть так:

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

        const string reportSource = "Orders"; // название вашего DataSource в отчёте

        stiReport.RegData(reportSource, dtOrders); // регистрируем источник
        stiReport.Dictionary.Synchronize();
        stiReport.Dictionary.DataSources[0].Name = reportSource; // переименовываем источник
        stiReport.Dictionary.DataSources[0].Alias = reportSource;

        // после можно рендерить отчёт
        stiReport.Show();
И далее в отчёте вызываем уже {Orders.Id} или {Orders.Name} и т.д.
Тоже самое можно проделать и с DataSet.
andry111@mail.ru
Сообщения: 2
Зарегистрирован: 04 авг 2016, 15:48

Re: Как заполнить DataSet отчета из WindowsForms

Сообщение andry111@mail.ru »

Спасибо.

написал вот такой код.


StiReport stiReport = new StiReport();
stiReport.Load("stiCommon.mrt");

const string reportSource = "DS1"; // название вашего DataSource в отчёте

DataTable dtOrders = new DataTable();
dtOrders.Columns.Add("col1");
dtOrders.Rows.Add("value1");
dtOrders.Rows.Add("value2");
dtOrders.Rows.Add("value3");
dtOrders.Rows.Add("value4");
dtOrders.Rows.Add("value5");


stiReport.RegData(reportSource, dtOrders); // регистрируем источник
stiReport.Dictionary.Synchronize();
stiReport.Dictionary.DataSources[0].Name = reportSource; // переименовываем источник
stiReport.Dictionary.DataSources[0].Alias = reportSource;

// после можно рендерить отчёт
stiReport.Compile();
stiReport.Show();

Пишет ошибку "Дополнительные сведения: c:\Users\andrey\AppData\Local\Temp\rautckni.0.cs(3669,22) : error CS0102: Класс "Reports.Report" уже содержит определение для "DS1DataSource""
Источник DS1 в отчете уже есть и именно его надо заполнить.

Подскажите, что я делаю не так?
Спасибо.
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Re: Как заполнить DataSet отчета из WindowsForms

Сообщение Леонид »

День добрый!

Вы всё правильно написали в коде, он рабочий. Вероятно, у вас в отчёте уже есть источник данных с таким же именем, т.к. отчёт вы не показали, то конкретнее сказать не могу.

Набросал примитивный пример и отчёт, который выводит данные, использовал ваш код один в один, см. архив в приложении, а результат на скриншоте.
Вложения
Clipboard01.png
Clipboard01.png (14.42 КБ) 2397 просмотров
StimulTest.7z
(19.73 КБ) 156 скачиваний
Ответить