on 02-16-2009 2:38 AM
VS2005でWebアプリケーションの開発でReportViewerを使って印刷を行おうとしています。
ReportViewerのプロパティのPrintModeをpdfとした場合は何回かポップアップウィンドウがでますが、印刷はできました。
しかし、これをActiveXとすると裏にポップアップはでるが直接印刷のウィンドウがでてすぐ印刷はできそうですが、実際に印刷ボタンを押すと
Crystal プリント コントロール
通信エラーが発生しました。印刷は停止されます。
と表示され、印刷ができません。
使用しているブラウザはIE7でActiveXコントロールのインストールは有効とし、IEのアドオンの管理を確認すると
Crystal Print Control 10.2 有効
となっており、
C:\WINDOWS\Downloaded Program Files\PrintControl.dll
にダウンロードされているようです。
VS2005付属のReportViewerをActiveXで印刷するにはどうしたらよいのか教えてください。
Edited by: Haruyuki Noguchi on Feb 17, 2009 12:46 AM
現在DataSetでDBデータを取得し、ReportDocument.SetDataSourceでそのDataSetを設定していますが、これをやめてDataSetなしのrptファイルを出力する場合はPrintModeがActiveXでも上記の問題は発生しません。
Me.CrystalReportSource1.ReportDocument.SetDataSource(ds)
Me.CrystalReportViewer1.ReportSource = Me.CrystalReportSource1
そうなると上記のCrystalReportにデータを渡しているところに問題がありそうですが、なにかありましたら教えてください。
ActiveXコントロールがダウンロードできており、rptファイルもクライアントのローカルエリアに落ちてきていることから、なかのデータセットのみ落ちてきていないようです。
そこで、CrystalReportViewer1_DataBindingイベントでデータセットを再取得してReportViewerにセットしたところ、ActiveXで正常に印刷されるようになりました。
ただ、ActiveXコントロールの印刷ボタンをおすとDataBindingイベントは頻繁に起こるようで、そのたびDBからデータを取得するとサーバーが負荷に耐え切れずおちてしまいます。
そこで、データセットはGolbalで確保し、DataBindingイベントが発生してもデータセットがnullでなければこれをReportViwerにわたすことでとりあえず動作しております。
VS2005バンドル版のReportViwerをActiveXで動作させる時上記のような方法でよいのでしょうか?
できましたら教えてください。
ちなみに使用しているActiveXコントロールは
Crystal Print Control 10.2 PrintControl.dll 2005/09/18 23:33
です。
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
更新が無いので answered に変更させて頂きます。
SCN フォーラムモデレーター
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
90 | |
10 | |
10 | |
10 | |
7 | |
7 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.