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

StackOverflow https://stackoverflow.com/questions/5816782

Вопрос

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

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

Export Button

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

The Error Message

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

var report = new ReportDocument();
report.Load(@"Reports\MyReport.rpt");

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

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

Это было полезно?

Решение 3

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

report.Load(@"Reports\MyReport.rpt");

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

report.Load(AppDomain.CurrentDomain.BaseDirectory + "\\" + @"Reports\MyReport.rpt");

И это сработало так же, как волшебство :)

Другие советы

Чтобы решить эту проблему, вы должны изменить установленную версию .NET на клиентской машине с профиля клиента на полную версию .NET.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top