販売請求書と請求書を印刷するために C# ベースのウィンドウであるアプリケーションで Crystal レポートを使用していますが、処理に時間がかかるという問題があります。この目的のためにリアルタイムで高速な方法が必要です。解決策を提案してください。データベースからの手順でクリスタルレポートをリンクしています。これは、クリスタルレポートではなく請求書を印刷するための代替手段です...
2 に答える
あなたが彼女を幸せにするものを学ぶために時間をかけるならば、クリスタルは「速い」です。私の経験では、実際の印刷が処理時間の大部分を占める可能性があります。.rptファイルの作成には25ミリ秒しかかからない場合がありますが、その後5000ミリ秒でプリンタサーバーとネゴシエートします。私はCrystalサーバー側の印刷に何週間も取り組んできました。
それは大きな違いを生みます:
印刷方法:
ReportDoc.PrintToPrinter
vs 。PrintOutputController.PrintReport
選択したプリンターが、レポートの作成に使用したプリンターと同じドライバーを使用しているかどうか。
プリンターがサーバー(またはリモートプリンターサーバーのみ)にインストールされているかどうか、およびIIS_Identityのプロファイルにインストールされているかどうか。
正しく構成されていない場合、レポートの印刷に1〜2分かかる場合があります(直接の経験に基づく)。いくつかの調整を行うと、突然50ミリ秒未満になります。
たとえば、使用PrintToPrinter()
していて、指定したプリンターがIISユーザーの.NETでインストールされているプリンターのリストにない場合、印刷に長い時間がかかります。プリンターをインストールして、IISユーザーが利用できるようにします。そうすれば、印刷は瞬時に行われます。
ある winforms プロジェクトで、レポートの読み込みに時間がかかるという問題に直面しましたが、それは初めてでした。後でレポートが実行されたとき、問題はまったくありませんでした。
フレームワークが結晶アセンブリをメモリにロードするのに時間がかかると想定しました。
そこで、アプリケーションが実行されるたびにバックグラウンド スレッドに空のレポートをロードするハックを作成しました。