Мы пытаемся перейти с Crystal Reports 10 (старая версия COM) на последнюю версию Crystal Reports для Visual Studio. (На момент написания статьи 13.0.23). У нас возникают различные проблемы, поэтому я попытался добавить ReportDocument.Close () в код, и теперь он зависает.
Это самый простой пример, который я могу создать, который воспроизводит проблему.
Параметры:
- C # с .NET 4.7.2
- WinForms
- Crystal Reports CRforVS_13_0_23.exe
- CrystalReport1 - новый отчет, созданный в Visual Studio с использованием отчета DDF (только определение данных)
- frmPreview - это новая форма, содержащая только элемент управления CrystalReportViewer. Все настройки по умолчанию.
Код:
public partial class frmPreview : Form
{
ReportDocument rd;
public frmPreview(DataTable data)
{
InitializeComponent();
rd = new CrystalReport1();
rd.SetDataSource(data);
crystalReportViewer1.ReportSource = rd;
}
private void frmPreview_FormClosing(object sender, FormClosingEventArgs e)
{
// crystalReportViewer1.ReportSource = null;
rd.Close();
rd.Dispose();
}
}
Я очень обеспокоен тем, что мы также будем печатать отчет вручную и экспортировать отчет без просмотра. Нам нужно правильно высвобождать ресурсы.