Crystal Reports2010すべてのレポートは、Windowsxpの任意のフォーマットにレポートがエクスポートされると、ロードに失敗します

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

質問

500人以上のユーザーのClickOnceを使用して展開されたWPF請求ソリューションがあり、CrystarePorts2010がレポートに使用されました。ユーザーの85%がWindowsXPをマシンにインストールしています:(

Crystal Reportsは、Crystal Reports Viewerの内蔵エクスポートボタンを使用してユーザーがレポートをエクスポートするまで、WindowsXPマシンで正常に機能します。彼がアプリケーションを再起動するまで解決策。

Export Button

これは、エクスポート後に新しいレポートを開こうとする場合のエラーです。

The Error Message

ソリューションにレポートを保存します。アプリケーションファイルの外側のコンテンツ外部リソースを使用します。

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バージョンに変更する必要があります。

レポートを閉じて処分していますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top