Я использую Crystal Report (v13.0.16.1954), чтобы экспортировать счет, сделанный с моим программным обеспечением, в pdf. Мое программное обеспечение сделано в C# с VS2015.
Мне нужно экспортировать весь счет (несколько тысяч) в pdf, но когда я попытался, примерно через 2 с половиной, я получил либо "ошибку в файле { filename_in_temp} .rpt запрос не может быть отправлен в фоновой обработке "или" Память заполнена Невозможно экспортировать отчет ".
Я пытался удалить другую вещь (изображение, выражение и т. д. c) до точки, где Я попытался «экспортировать» отчет, в котором ничего не было (я сделал новый отчет, ничего не сделал в нем и просто попытался экспортировать его несколько тысяч раз подряд). И все та же ошибка переполнения памяти.
Вот код:
private void makeReport()
{
report = new ReportDocument();
report.Load(reportPath);
report = dataToReport(report);
report.SetParameterValue("NUM", num);
report.SetParameterValue("NUM_AV", num_av);
ExportOptions CrExportOptions;
DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
CrDiskFileDestinationOptions.DiskFileName = destPath;
CrExportOptions = report.ExportOptions;
{
CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;
CrExportOptions.FormatOptions = CrFormatTypeOptions;
}
try
{
report.Export();
}
catch (Exception ex)
{
throw ex;
}
report.Close();
report.Dispose();
}
private ReportDocument dataToReport(ReportDocument report)
{
ConnectionInfo ciReportConnection = new ConnectionInfo();
ciReportConnection.ServerName = server;
ciReportConnection.DatabaseName = db;
ciReportConnection.UserID = user;
ciReportConnection.Password = pwd;
foreach (Table table in report.Database.Tables)
{
table.LogOnInfo.ConnectionInfo = ciReportConnection;
table.ApplyLogOnInfo(table.LogOnInfo);
}
foreach (ReportDocument subrep in report.Subreports)
{
foreach (Table table in subrep.Database.Tables)
{
table.LogOnInfo.ConnectionInfo = ciReportConnection;
table.ApplyLogOnInfo(table.LogOnInfo);
}
}
return report;
}
Примечание: строка "SetParameterValue" комментируется или удаляется при тестировании с пустым отчетом.
Я уже видел других людей с этой ошибкой, но ни у одного из них нет такого случая, как у меня:
https://answers.sap.com/questions/7111653/memory-full-error-while-exporting-report-to-pdf-fo.html
asp. net c# Экспорт отчета Crystal в PDF-память заполнена
Ошибка переполнения памяти при экспорте отчета Crystal в PDF
Есть предложения, чтобы это исправить?