Crystal Reports 2010 Все отчеты не загружаются после экспорта отчета в любой формат в WindowsXP

#wpf #crystal-reports #reportviewer #crystal-reports-export #crystal-reports-2010

#wpf #crystal-отчеты #reportviewer #crystal-отчеты-экспорт #crystal-reports-2010

Вопрос:

У меня есть решение для выставления счетов WPF, которое развернуто с помощью ClickOnce для более чем 500 пользователей, для создания отчетов использовались CrystaReports2010, у 85% пользователей на их компьютерах установлена WindowsXP : (

Crystal Reports отлично работает на компьютерах WindowsXP, пока пользователь не экспортирует отчет с помощью встроенной кнопки экспорта в программе просмотра Crystal Reports, если он сделал это, процесс экспорта завершается успешно, но он не может открыть какой-либо другой отчет в решении, пока не перезапустит приложение.

Кнопка экспорта

Это ошибка при попытке открыть новый отчет после экспорта:

Сообщение об ошибке

Я сохраняю отчеты в своем решении как внешние ресурсы содержимого вне файла application .exe и загружаю их по запросу, примерно так:

 var report = new ReportDocument();
report.Load(@"ReportsMyReport.rpt");
  

Я убедился, что после закрытия отчета пользователь закрывает объект report document и удаляет его, чтобы не было утечек памяти или превышения максимального количества открытых отчетов.

Если я изменил свою реализацию таким образом, чтобы сохранять отчеты внутри моего решения в виде встроенных ресурсов, проблема решена, но это не вариант, поскольку отчеты относительно большого размера (200-450 КБ), это будет большой DLL-файл, который будет загружаться клиентам через ClickOnce всякий раз, когда мы выпускаем новую версию, содержащую какие-либо изменения в любом отчете!. Другой вариант заключается в группировании каждого, скажем, четырех отчетов в одну DLL, и все та же проблема (1-2 МБ — это все еще большой кусок). Зная, что у нас много отчетов, и мы получаем частые запросы на изменение этих отчетов в соответствии с изменениями в политиках нашего клиента. Пожалуйста, помогите!

Ответ №1:

Чтобы решить эту проблему, вам необходимо изменить установленную версию .net на клиентском компьютере с client profile на полную.сетевая версия.

Комментарии:

1. Я установил полный. версия net framework 4.0, но проблема все еще существует.

Ответ №2:

Вы закрываете и удаляете документы отчета после того, как закончили с ними?

Комментарии:

1. Да, я закрываю отчет и удаляю его, как только закончу его отображение.

Ответ №3:

Наконец, я нашел решение 🙂 Проблема заключалась в том, что при экспорте отчета Crystal Report с помощью кнопки экспорта по умолчанию, предоставляемой средством просмотра Crystal Reports, кнопка экспорта изменяет текущий рабочий каталог приложения на местоположение экспорта!!! (странное поведение!!) и именно поэтому следующая строка больше не будет работать:

 report.Load(@"ReportsMyReport.rpt");
  

Итак, я изменил эту строку на следующую:

 report.Load(AppDomain.CurrentDomain.BaseDirectory   "\"   @"ReportsMyReport.rpt");
  

И это сработало как по волшебству 🙂