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

Экспорт отчетов

Добавлено: 24 мар 2009, 07:06
Yuriy
Добрый день.
Есть несколько вопросов:
1. Возникла такая ситуация. Создали большой отчет 5000 страниц с использованием кэширования (ReportCacheMode = StiReportCacheMode.On). Отчет создался и использовал около 200 Мб памяти. Отчет вышел в предварительный просмотр. Делаем сохранение в формат CSV и на стадии форматирования процесс начинает использовать 1600 Мб памяти и падает с ошибкой OutOfMemory. Каким образом решить данную проблему и выгрузить отчет?
2. Есть ли возможность запускать построение отчета в отдельном процессе? Если есть то каким образом?
3. Есть ли возможность запускать сохранение в отдельном процессе? Если есть то каким образом?
4. При выгрузке указаных страниц, если указываем диапазон (например: 1-1000) не правильно выгружает. Не выгружает указанные страницы. Как решить эту проблему?
Спасибо.

Экспорт отчетов

Добавлено: 24 мар 2009, 09:45
Jan
Здравствуйте Юрий,
1. Возникла такая ситуация. Создали большой отчет 5000 страниц с использованием кэширования (ReportCacheMode = StiReportCacheMode.On). Отчет создался и использовал около 200 Мб памяти. Отчет вышел в предварительный просмотр. Делаем сохранение в формат CSV и на стадии форматирования процесс начинает использовать 1600 Мб памяти и падает с ошибкой OutOfMemory. Каким образом решить данную проблему и выгрузить отчет?
При экспорте в формат CSV на первом этапе создается большая матрица. Не уверен на 100%, но скорей всего переполняется именно эта тиблица. Кэширование она не поддерживает. Нам потребуется какое то время, на поиск решения данной проблемы. О результатах сообщим в этом топике.
2. Есть ли возможность запускать построение отчета в отдельном процессе? Если есть то каким образом?
Да. Ниже пример кода:
BackgroundWorker worker = null;
try
{
worker = new BackgroundWorker();
worker.WorkerSupportsCancellation = true;
worker.DoWork += new DoWorkEventHandler(RenderWorker_DoWork);
worker.RunWorkerAsync(renderState);

if (worker != null)
{
while (worker.IsBusy)
Application.DoEvents();
}
}
finally
{
if (worker != null)
worker.Dispose();
}
Собственно, какой то специальной поддержки со стороны генератора отчетов это не требует. Но стоит учитывать что один и тот же объет отчета нельзя запускать на выполнения более одного раза одновременно.
3. Есть ли возможность запускать сохранение в отдельном процессе? Если есть то каким образом?
Имеется ввиду экспорт отчета в другой формат или сохранение в mdc/mdz файл? Логика работы такая же как и в предыдущем ответе.
4. При выгрузке указаных страниц, если указываем диапазон (например: 1-1000) не правильно выгружает. Не выгружает указанные страницы. Как решить эту проблему?
Под выгрузкой понимается экспорт? Уточните пожалуйста на каких форматах проявляется эта проблема?

Спасибо.

Экспорт отчетов

Добавлено: 24 мар 2009, 10:27
Yuriy
Jan писал(а):
4. При выгрузке указаных страниц, если указываем диапазон (например: 1-1000) не правильно выгружает. Не выгружает указанные страницы. Как решить эту проблему?
Под выгрузкой понимается экспорт? Уточните пожалуйста на каких форматах проявляется эта проблема?

Спасибо.
Здравствуйте.
Под выгрузкой понимается экспорт. Проверяли на форматах CSV, XLS на остальных проверить не успели.

Экспорт отчетов

Добавлено: 26 мар 2009, 14:26
Edward
Здравствуйте, Юрий.

Будьте добры, пришлите, пожалуйста, mrt файл Вашего отчета и mdc файл (если он получается разумных для пересылки размеров) на support[at]stimulsoft.com для анализа.

Не удалось воспроизвести указанную Вами ситуацию...

Спасибо.

Экспорт отчетов

Добавлено: 27 мар 2009, 02:32
Yuriy
Здравствуйте.
Для анализа направлены запрошенные вами файлы.
В архире есть результаты выгрузки.
В текстовом файле описано при каких значениях ReportCacheMode экспортировался каждый файл.
Спасибо.

Экспорт отчетов

Добавлено: 28 мар 2009, 20:41
Ivan
Здравствуйте.
Yuriy писал(а):4. При выгрузке указанных страниц, если указываем диапазон (например: 1-1000) не правильно выгружает. Не выгружает указанные страницы. Как решить эту проблему?
Мы воспроизвели проблему и решили ее.
Исправление будет доступно в следующем предрелизном билде.

Спасибо.