Crystal Reports2010すべてのレポートは、Windowsxpの任意のフォーマットにレポートがエクスポートされると、ロードに失敗します
質問
500人以上のユーザーのClickOnceを使用して展開されたWPF請求ソリューションがあり、CrystarePorts2010がレポートに使用されました。ユーザーの85%がWindowsXPをマシンにインストールしています:(
Crystal Reportsは、Crystal Reports Viewerの内蔵エクスポートボタンを使用してユーザーがレポートをエクスポートするまで、WindowsXPマシンで正常に機能します。彼がアプリケーションを再起動するまで解決策。
これは、エクスポート後に新しいレポートを開こうとする場合のエラーです。
ソリューションにレポートを保存します。アプリケーションファイルの外側のコンテンツ外部リソースを使用します。
var report = new ReportDocument();
report.Load(@"Reports\MyReport.rpt");
ユーザーがレポートを閉じた後、レポートドキュメントオブジェクトを閉じて処分するために、メモリが漏れたり、最大数のオープンレポートを超えたりしないことを確認しました。
実装を変更してソリューション内のレポートを埋め込みリソースとして保存すると問題が解決しますが、これはレポートのサイズが比較的大きいため、これはオプションではありません。 ClickOnceを介してクライアントにダウンロードされます。レポートに変更がある新しいバージョンをリリースするたびに!別のバリエーションは、それぞれ4つのレポートを1つのDLLにグループ化することですが、それでも同じ問題です(1MB-2MBは依然として大きな塊です)。多くのレポートがあり、クライアントのポリシーの変更に応じて、これらのレポートの変更リクエストを頻繁に取得することを知っています。助けてください!
解決 3
最後に、解決策を見つけました:)問題は、Crystal Reports Viewerが提供するデフォルトのエクスポートボタンでクリスタルレポートをエクスポートすると、エクスポートボタンがアプリケーションの現在の作業ディレクトリをエクスポート場所に変更することでした!!! (奇妙な行動!!)そしてそれが次の行がもう機能しない理由です:
report.Load(@"Reports\MyReport.rpt");
それで、私はこの行を次のように変更しました:
report.Load(AppDomain.CurrentDomain.BaseDirectory + "\\" + @"Reports\MyReport.rpt");
そして、それは魔法のように機能しました:)
他のヒント
この問題を解決するには、クライアントマシンにインストールされている.NETバージョンをクライアントプロファイルからフル.NETバージョンに変更する必要があります。
レポートを閉じて処分していますか?