none
Crystal Reportの初回表示が遅い RRS feed

  • 質問

  • VB2008.NET Professional Edition SP1 の プログラム内で、Crystal Report を使用しています。
     Form に Crystal Report Viewer をオブジェクトとして配置して、Show dialog でフォームを
    表示しています。

     ボタンをクリックすると、画面にレポートを表示する仕掛けにしていますが、
    第一回目のみ、画面にレポートが表示されるまで、25秒、
    以降は2秒以内で表示されます。

    1回目のみ非常に遅いのですが、これは通常の動作なのでしょうか?
     早くする方法、調査すべき内容があったら教えてください。



    2008年11月5日 1:45

回答

  • 初回に時間がかかるのは、Crystal Report Viewに必要なランタイムの読み込み、およびその初期化に時間がかかるからです。したがって、根本的にこれを解決する方法はおそらくありません。私のところでも初回起動時には時間がかかります。

    解決策としては、アプリケーション起動時に適当なレポートをロードすることにより、Crystal Reportsのランタイムを読み込んでしまうことでしょう。ただし、当然ながらアプリケーション自体の起動が遅くなってしまいます。単純なレポートをロードするようにすれば、この時間を少しでも短くできるかもしれません。

     

    2008年11月5日 3:17
    モデレータ

すべての返信

  • 初回に時間がかかるのは、Crystal Report Viewに必要なランタイムの読み込み、およびその初期化に時間がかかるからです。したがって、根本的にこれを解決する方法はおそらくありません。私のところでも初回起動時には時間がかかります。

    解決策としては、アプリケーション起動時に適当なレポートをロードすることにより、Crystal Reportsのランタイムを読み込んでしまうことでしょう。ただし、当然ながらアプリケーション自体の起動が遅くなってしまいます。単純なレポートをロードするようにすれば、この時間を少しでも短くできるかもしれません。

     

    2008年11月5日 3:17
    モデレータ
  • 初回はこれぐらい時間がかかるのが普通なのですね。
    ありがとうございました。 
    2008年11月6日 0:49
  • こんにちは。

     

    いくらなんでも 25 秒と 2 秒は違いすぎます。
    初回の CrystalReports Engine の準備で 23 秒の差が出ることはあり得ないです。

     

    2 回目以降が早いのは ReportCache が働いているからではないでしょうか?
    レポートの規模によってはそれくらいの差が出ますね。

    (サブ レポートがあるとか、Image があるとかいろいろな要素がありますが)

    • 回答の候補に設定 kokada11263 2017年12月6日 23:30
    2008年11月6日 11:13
  • じゃんぬねっと さん、お疲れ様です

     

    CrystalReports は場合多くのWeページを張り付けられると思います。

     

    サーバーリソースを多く使うページ? を画面に多く表示すると確かに最初だけ特に時間がかかる

    場合があります。

    最近のモニターの表示能力が上がっている&複数モニターが一般的になっているため、多くの情報を

    表示させようとしていないでしょうか?

    2回目以降は、早く表示されるんです・・CrystalReports ではありませんが、私もよくやっています。

    外れであれば、ごめんなさい。

    2008年11月6日 14:21
  • ありがとうございます
    23秒の差は大きいのですね。

    1回目と2回目以降は、同プログラムを使用しているのですg、元になるデータが違うので、
    1回目のレポートがキャッシュされて、丸ごとそこからそのまま表示されているので、
    早いというのではなさそうなです。
    イメージ、サブレポートも使用していない。
    ページはA4で1ページ分(3ページくらいになることがありますが、速度に変化無しです)

    2008年11月13日 1:54
  • ありがとうございます。

    すみません。Weページというのがわかりませんでした。

    クライアントパソコンにプログラムを置いています。
    クライアントのタスクマネージャーのパフォーマンスをみてみると、レポートオープン時に
    CPU負荷が高くなったりの変化はでません。
    複数プログラムの起動をしない状態で、実行していますが、速度に変化無しです。
    A41枚の印刷のプレビューですが、レポートに罫線はひいています。
     
     レポートの表示前にプリンタの環境情報などを取りに行っている時間が
    かかっているのかしら。

     アイディアとしては、先にダミーのレポートの表示をして、閉じてしまう。というのをいれるという
    対処はできそうです。が、
    他では、そんなに時間がかかっていないとすると、プログラムの作り、環境が心配です。

    2008年11月13日 2:15
  •  MorningStorehouse さんからの引用

    23秒の差は大きいのですね。

     

    これについてはパソコンの能力や環境に依存すると思いますので、データを取ってみるしかないのではないでしょうか? 私の環境で試してみましたが、以下のような結果でした。同じアプリケーションで同じレポートを表示させています。データ量も全く同じです。

     

    パソコンA(Windows Xp)      初回 26秒  2回目 7秒

    パソコンB(Windows Vista)  初回 11秒  2回目 2秒

     

    2008年11月13日 2:19
    モデレータ
  • trapemiya

    そうですね。パソコン能力、環境によりますね。
    試していただいてありがとうございます。

     参考になりました。
    2008年11月18日 9:44
  • こんにちは。中川俊輔 です。

     

    trapemiyaさん、じゃんぬねっとさん、wm-tさん、回答ありがとうございます。

     

    MorningStorehouseさん、フォーラムのご利用ありがとうございます。

    有用な情報と思われたため、trapemiyaさんの回答へ回答済みチェックをつけさせていただきました。

     

    今後ともフォーラムをよろしくお願いします。

    それでは!

    2008年11月27日 5:31