トップ回答者
Crystal Reportの初回表示が遅い

質問
-
VB2008.NET Professional Edition SP1 の プログラム内で、Crystal Report を使用しています。
Form に Crystal Report Viewer をオブジェクトとして配置して、Show dialog でフォームを
表示しています。
ボタンをクリックすると、画面にレポートを表示する仕掛けにしていますが、
第一回目のみ、画面にレポートが表示されるまで、25秒、
以降は2秒以内で表示されます。
1回目のみ非常に遅いのですが、これは通常の動作なのでしょうか?
早くする方法、調査すべき内容があったら教えてください。
回答
-
初回に時間がかかるのは、Crystal Report Viewに必要なランタイムの読み込み、およびその初期化に時間がかかるからです。したがって、根本的にこれを解決する方法はおそらくありません。私のところでも初回起動時には時間がかかります。
解決策としては、アプリケーション起動時に適当なレポートをロードすることにより、Crystal Reportsのランタイムを読み込んでしまうことでしょう。ただし、当然ながらアプリケーション自体の起動が遅くなってしまいます。単純なレポートをロードするようにすれば、この時間を少しでも短くできるかもしれません。
すべての返信
-
初回に時間がかかるのは、Crystal Report Viewに必要なランタイムの読み込み、およびその初期化に時間がかかるからです。したがって、根本的にこれを解決する方法はおそらくありません。私のところでも初回起動時には時間がかかります。
解決策としては、アプリケーション起動時に適当なレポートをロードすることにより、Crystal Reportsのランタイムを読み込んでしまうことでしょう。ただし、当然ながらアプリケーション自体の起動が遅くなってしまいます。単純なレポートをロードするようにすれば、この時間を少しでも短くできるかもしれません。
-
こんにちは。
いくらなんでも 25 秒と 2 秒は違いすぎます。
初回の CrystalReports Engine の準備で 23 秒の差が出ることはあり得ないです。2 回目以降が早いのは ReportCache が働いているからではないでしょうか?
レポートの規模によってはそれくらいの差が出ますね。(サブ レポートがあるとか、Image があるとかいろいろな要素がありますが)
- 回答の候補に設定 kokada11263 2017年12月6日 23:30
-
ありがとうございます。
すみません。Weページというのがわかりませんでした。
クライアントパソコンにプログラムを置いています。
クライアントのタスクマネージャーのパフォーマンスをみてみると、レポートオープン時に
CPU負荷が高くなったりの変化はでません。
複数プログラムの起動をしない状態で、実行していますが、速度に変化無しです。
A41枚の印刷のプレビューですが、レポートに罫線はひいています。
レポートの表示前にプリンタの環境情報などを取りに行っている時間が
かかっているのかしら。
アイディアとしては、先にダミーのレポートの表示をして、閉じてしまう。というのをいれるという
対処はできそうです。が、
他では、そんなに時間がかかっていないとすると、プログラムの作り、環境が心配です。