none
ReportViewerの総ページ数について RRS feed

  • 質問

  • VS2012にバンドルされているReportViewerを使用してレポートを作成しているのですが、
    プログラム側(VB2012、Windowsアプリケーション)よりプレビュー画面を表示した際、
    総ページ数が正しく表示されません。

    具体的には、全部で50ページほどあるレポートを表示した際に総ページ数がゆっくりとカウントアップしていき、
    本来の総ページ数になるまでに時間がかかっている状態です。

    レポートに渡してるデータの項目数が200個と多く、これらを1ページに表示させているので、
    それがページの読み込みを遅くしている原因かと思いましたが、
    コントロールの表示モード(SetDisplayMode)を標準モードにしている場合は正しい総ページ数になり、
    印刷プレビューモードにした場合のみ上記のようになってしまうため、他に原因があるようにも感じられます。

    また、総ページ数がカウントアップしている途中で最終ページへの移動ボタンを押すと、
    現在表示されている総ページ数までしか移動できません。

    どうしたら印刷プレビューモードでのプレビュー表示時にすぐに正しい総ページを表示することができるでしょうか?
    よろしくお願いします。

    2013年4月5日 4:35

回答

  • Windowsはプリンタを自由に選択できるOSなので、選択されているプリンタのドライバとドライバの設定を使ってレンダリングしない限り総ページ数は解りません。
    この動作がいわゆる印刷プレビューです。
    ドキュメントによっては印刷プレビューのページ数と、ドキュメント設計のページ数が等しい事があります。
    しかし、印刷プレビューモードに移ってからレンダリング終了した時点の総ページ数が、印刷する時の正しい総ページ数です。

    どうしても直ぐに表示する必要があるなら、別スレッドで予めレンダリング処理を済ませておくなど考えられますが、かなり面倒そうです。

    • 回答の候補に設定 星 睦美 2013年4月8日 0:55
    • 回答としてマーク 星 睦美 2013年4月11日 5:21
    2013年4月5日 7:09

すべての返信

  • Windowsはプリンタを自由に選択できるOSなので、選択されているプリンタのドライバとドライバの設定を使ってレンダリングしない限り総ページ数は解りません。
    この動作がいわゆる印刷プレビューです。
    ドキュメントによっては印刷プレビューのページ数と、ドキュメント設計のページ数が等しい事があります。
    しかし、印刷プレビューモードに移ってからレンダリング終了した時点の総ページ数が、印刷する時の正しい総ページ数です。

    どうしても直ぐに表示する必要があるなら、別スレッドで予めレンダリング処理を済ませておくなど考えられますが、かなり面倒そうです。

    • 回答の候補に設定 星 睦美 2013年4月8日 0:55
    • 回答としてマーク 星 睦美 2013年4月11日 5:21
    2013年4月5日 7:09
  • 返信ありがとうございます。

    単純に出力プリンタ設定して印刷プレビューを表示するだけでは駄目なんですね・・・。

    今回はどうしてもすぐに表示させたいわけではないのですが、今後もReportViewerを使うかもしれないことを考えると、今のような状態だと気持ち悪いというか、不便に感じたので質問させていただきました。

    2013年4月6日 16:17