- PR -

Webアプリケーションで、Crystal Report で作成したレポートをクライアントから印字する方法

1
投稿者投稿内容
カレー落武者
常連さん
会議室デビュー日: 2003/09/12
投稿数: 49
投稿日時: 2003-09-24 10:25
以前にも、以下のスレッドでも少し話題になっていたようなのですが、期待する回答が書き込まれていなかったため、再度質問させてください。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=3268&forum=7

C#でWebアプリケーションを作成しているのですが、書類を印字する機能について悩んでおります。
VisualStudio.Net 2003 に付属しているCrystal Reportを使用して、どうにかレポートの作成する所までは成功したのですが、それをクライアント側から印刷する方法が解らないのです。
MSDNでも調べてみたのですが、それによると、レポートを印刷する方法は以下の3種類あるそうです。
・クライアントが既に持っているアプリケーションで印刷できる形式にレポートをエクスポートします。
・PrintToPrinter メソッドを使用して、レポートをサーバーから印刷します。
・レポートを 1 ページで提供して、クライアント側のInternet Explorer ブラウザから印刷できるようにします。

私はクライアントから印刷しようと考えているので、1番か3番の選択肢となりますが、これにはいくつか問題があるように思います。
1番の場合、指定のアプリケーションをクライアント側に必ずインストールしている必要があります。また、エクスポートしたアプリケーションで印刷する処理は、クライアント側で他のユーザーが自分で行う必要があります。
3番の場合、IEの印刷機能に依存するわけですから、書類のデザインが崩れたりしないか不安です。

私としては、クライアント側で操作するユーザーには、出来るだけ他のアプリケーションを操作しなくて良いような作りにしたいので、フォームのボタンをクリックした瞬間に印刷してくれるような作りにしたいのです。しかし、MSDNを調べた所、上記の手段しか記載されておらず、実現方法が解りません。
どうにかして、実現する方法は無いものでしょうか?

もし不可能であれば、不可能である理由も出来るだけ詳しく知りたいと考えております。

どうか、よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-09-24 11:11
こんにちは。

※印刷できないのはなぜ?
 セキュリティです。あるページにアクセスして、カレー落武者さんは特定の動作で印刷するようにしているでしょうが、Page_Loadにコーディングすればアクセスしたとたんに印刷できますよね?そのように、ページにアクセスした瞬間に広告がたくさん印刷されたらどうします?(と、以前ここで言われた)

※アプリケーションのファイルにしてエクスポート
 方法は会議室中にありますが、クライアントがIEであれば、レスポンスをデータファイルにして、IEのプラグインに表示させるという手が使えます。これなら、「ページ上の印刷ボタン=プレビューボタン」となりますが、ユーザはデータをダウンロードしたり、アプリケーションを起動したりという処理を意識しなくてもすみます。Acrobat ReaderやWordは、たいてい入っているのではないでしょうか?
カレー落武者
常連さん
会議室デビュー日: 2003/09/12
投稿数: 49
投稿日時: 2003-09-24 12:02
>※アプリケーションのファイルにしてエクスポート
> 方法は会議室中にありますが、クライアントがIEであれば、レスポンスをデータファイルに
>して、IEのプラグインに表示させるという手が使えます。これなら、「ページ上の印刷ボタン
>=プレビューボタン」となりますが、ユーザはデータをダウンロードしたり、アプリケーショ
>ンを起動したりという処理を意識しなくてもすみます。Acrobat ReaderやWordは、たいてい
>入っているのではないでしょうか?

やはり、その方法が一般的なようですね。自分でも調べてみたのですが、どうやらそれが一番確実に書類を印刷できるようですね。
他の方法も含めて、また自分で調査をしてみます。
また解らない点がありましたら、その時はよろしくお願いいたします。

すばやい回答、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)