Обновление отчета

Обсуждение Stimulsoft Reports.NET
Ответить
hornet
Сообщения: 8
Зарегистрирован: 10 окт 2008, 09:18

Обновление отчета

Сообщение hornet »

Здравствуйте. Помогите разобраться. В проекте есть DataGrid, источник данный – типизированный DataSet. На стороне сервера есть хранимые процедуры для Insert, Update,Delete. TableAdapter заполняется при открытии формы. Все работает, положил на форму кнопку просмотра отчета, Report.Show(). Отчет строил с помощью мастера из проекта. Что происходит – при открытии формы, заполняется грид, нажимаю на кнопку просмотра отчёта всё работает. Если меняю записи или удаляю, соответсвенно сохраняя в базе, при открытии отчета данные не меняются. Не пойму что забыл?
Jan
Сообщения: 495
Зарегистрирован: 19 фев 2009, 11:14

Обновление отчета

Сообщение Jan »

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

Если используется один и тот же объект отчета, то нужно очистить хранилище данных в отчете. Например:

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

report.DataStore.Clear();
if (report.CompiledReport != null)
      report.CompiledReport.DataStore.Clear();
Спасибо.
hornet
Сообщения: 8
Зарегистрирован: 10 окт 2008, 09:18

Обновление отчета

Сообщение hornet »

Здравствуйте. Делал, как Вы написали, всё без изменений. Получается, что отчёт не видит обновления в датасете. Хотя грид сразу реагирует на них. При первом запуске отчета на просмотр, появляется прогресс бар, его создания, затем, когда я изменил некоторые записи в гриде и сохранил их в базе грид соостветсвенно обновляется, запускаю отчет на просмотр, прогресс бара создания уже нет, ощущение, будто отчет формируется из своего КЭШа и не обращается к датасету, чтобы выбрать данные запросом. Чтобы увидеть обновленные записи в отчете, приходится закрывать форму на которой лежит грид и сам Report. В событии открытия формы DataAdapterы заполняют таблицы в датасете, Делал это перед открытием отчета изменений в отчете не видно. Как быть незнаю….
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Обновление отчета

Сообщение Aleksey »

stiReport1.DataSources.Clear();
stiReport1.RegData(MyDataSet);
stiReport1.Dictionary.Synchronize();
stiReport1.Render();

stiReport1.Show()
Ответить