OutOfMemoryException при формировании отчета

Обсуждение Stimulsoft Reports.NET
Ответить
evgen12345
Сообщения: 3
Зарегистрирован: 14 окт 2016, 13:27

OutOfMemoryException при формировании отчета

Сообщение evgen12345 »

Добрый день! Мы строим отчет, в котором источник данных это таблица из базы данных SQLITE. После формирования отчета, отчет должен выгружаться в файл Excel. Так как таблица большая (порядка 300 000 записей), то мы получаем при построении отчета OutOfMemoryException. Мы пробовали добавлять источник данных в отчет через DataSet и через StiSqlDatabase и в обоих случаях OutOfMemory. Подскажите, может быть есть способ избежать исключения. Заранее спасибо за ответ.
Версия: Stimulsoft reports.net 2013.3.1800.0

StiSqlDatabase:

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

 var report = new Stimulsoft.Report.StiReport();

report.Load("Report.mrt");

StiSqlDatabase database = new StiSqlDatabase("Connection", "ConnectionString");
report.Dictionary.Databases.Add(database);

StiSqlSource stiSqlSource = new StiSqlSource("Connection", "Name", "Name", "Select * From TestBigTable");

stiSqlSource.Columns.Add("TestColumn1", typeof(string));
stiSqlSource.Columns.Add("TestColumn2", typeof(string));
stiSqlSource.Columns.Add("TestColumn3", typeof(string));

report.Dictionary.DataSources.Add(stiSqlSource);

//Out of memory
report.Render();
report.ExportDocument(StiExportFormat.Excel2007, "ExcelTest.XLSX");
DataSet:

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

var report = new Stimulsoft.Report.StiReport();

report.Load( "Report.mrt");

string queryString = "Select * From TestTable";
SqlDataAdapter adapter = new SqlDataAdapter(queryString, _connection);

DataSet dataSet = new DataSet();
//Out of memory
adapter.Fill(dataSet, "TestTable");

report.RegData("Name", dataSet);

report.Render();

report.ExportDocument(StiExportFormat.Excel2007, "ExcelTestDataTable.XLSX");
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: OutOfMemoryException при формировании отчета

Сообщение Aleksey »

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

Пожалуйста, проверьте последний билд. За последний год-два делалось много оптимизаций в данном направлении.
Так же, пожалуйста, попробуйте задать ReportCacheMode свойство для отчета.

Спасибо.
evgen12345
Сообщения: 3
Зарегистрирован: 14 окт 2016, 13:27

Re: OutOfMemoryException при формировании отчета

Сообщение evgen12345 »

Aleksey писал(а):Здравствуйте,

Пожалуйста, проверьте последний билд. За последний год-два делалось много оптимизаций в данном направлении.
Так же, пожалуйста, попробуйте задать ReportCacheMode свойство для отчета.

Спасибо.
Добрый день! Скачал последний билд и устанавливил свойство ReportCacheMode. OutOfMemory все равно возникает при построении.
Спасибо за ответ.
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: OutOfMemoryException при формировании отчета

Сообщение Aleksey »

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

Не смогли воспроизвести проблему на наших тестовых данных.

Не могли бы вы прислать простой проект, с тестовыми данными, который воспроизводит проблему для анализа.
Так же, пожалуйста, установить следующие свойства:
StiOptions.Engine.ReportCache.AmountOfQuickAccessPages = 5;
StiOptions.Engine.ReportCache.AmountOfProcessedPagesForStartGCCollect = 5;
по умолчанию 50, при использовании изображений рекомендуется уменьшить.

Так же, уточните на каком из методов валится Render() или Export().

Спасибо.
evgen12345
Сообщения: 3
Зарегистрирован: 14 окт 2016, 13:27

Re: OutOfMemoryException при формировании отчета

Сообщение evgen12345 »

Здравствуйте!
Не могу отправить тестовое приложение во вложении. Когда добавляю файл, он его загружает, затем после загрузки файла очищается форма с сообщением.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: OutOfMemoryException при формировании отчета

Сообщение HighAley »

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

Пришлите, пожалуйста, пример на support@stimulsoft.com.

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