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

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

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

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

Добавлено: 24 май 2010, 09:01
Jan
Здравствуйте,

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

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

report.DataStore.Clear();
if (report.CompiledReport != null)
      report.CompiledReport.DataStore.Clear();
Спасибо.

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

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

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

Добавлено: 24 май 2010, 10:49
Aleksey
stiReport1.DataSources.Clear();
stiReport1.RegData(MyDataSet);
stiReport1.Dictionary.Synchronize();
stiReport1.Render();

stiReport1.Show()