- PR -

ASP.NETからCrystalReportで印刷をしたい

投稿者投稿内容
なかむら
ベテラン
会議室デビュー日: 2001/10/22
投稿数: 67
投稿日時: 2003-06-03 10:16
こんにちは、中村です。

現在ASP.NETを使用してレポート印刷を行うシステムを作成しています。
レポートはVS.NETに付属のCrystalReportを使用するのですが、資料が手元になく手探り状態でやっています。

やりたいことは、画面上からボタンを押したタイミングで、レポート表示する画面へ遷移させたいのですが、どのようにすればよいのでしょうか?
表示形式はHTMLでもPDFでも構いません。

参考となるサイトの情報などでも結構ですので、教えていただけないでしょうか。
よろしくお願いします、
Mr.タナカ
ベテラン
会議室デビュー日: 2003/03/15
投稿数: 64
投稿日時: 2003-06-03 13:33
こんにちは。
スレッド見ました。

PDFへの出力ですが、マイクロソフトのページにあります。
この方法であとはCrystalReportと合わせればできると思います。
他にも方法はあると思いますが、私はこの方法でできました。

http://support.microsoft.com/default.aspx?scid=http://www.microsoft.com/japan/support/kb/articles/307/6/03.asp

別方法としてはCrystalReport9にすればPDFへのエクスポートボタンがあるみたいです。
こっちの方が簡単だと思いますが...
なかむら
ベテラン
会議室デビュー日: 2001/10/22
投稿数: 67
投稿日時: 2003-06-03 15:13
レスありがとうございます。

教えていただいたページを参照しつつ、無事に生成したPDFをクライアント側へ送ることができるようになりました。

しかし一つ問題が発生して困っています。
希望としては、ボタンをクリックしたタイミングで別画面を表示し、そこにPDFを表示させたいのですが、うまくいきません。
PDFデータをHTTP出力ストリームに流してしまっているせいだと思いますが、これを回避するには、
1.画面Aのボタンをクリックする
2.画面Bを表示する
3.画面Bの<BODY>のOnLoadイベントでJavaScriptでPDF出力プログラムにSubmitする
とするしかないのでしょうか?

よい方法があれば教えていただきたいと思います。
よろしくお願いします。
Mr.タナカ
ベテラン
会議室デビュー日: 2003/03/15
投稿数: 64
投稿日時: 2003-06-03 15:35
こんにちは。
スレッド見ました。

引用:

なかむらさんの書き込み (2003-06-03 15:13) より:

1.画面Aのボタンをクリックする
2.画面Bを表示する
3.画面Bの<BODY>のOnLoadイベントでJavaScriptでPDF出力プログラムにSubmitする
とするしかないのでしょうか?




私の場合は、画面BのPage_LoadイベントにCrystalReportからPDFに変換するプログラムを書いていますが...JavaScriptは使わず、VBで記述しています。
画面Aは、新規で画面Bを開く程度のプログラムしか書いてないです。
なかむら
ベテラン
会議室デビュー日: 2001/10/22
投稿数: 67
投稿日時: 2003-06-03 15:59
レスありがとうございます。

画面Aから画面Bを開く際に新規ウィンドウで開いてやって、
画面BのPage_loadイベントでPDF生成をすると、時間がかかる場合にウィンドウが中途半端に表示されてしまっている状態になってしまうので、ユーザによっては混乱されやすいのではないかと思ったのです。
これはどうにもなりませんよね?

Mr.タナカ
ベテラン
会議室デビュー日: 2003/03/15
投稿数: 64
投稿日時: 2003-06-03 16:46
こんにちは。
スレッド見ました。

私の場合、マーキータグを使って「■■■■」をプログレスバーの代わりに、表示完了するまでは「しばらくお待ち下さい...」という画面にしておいてます。

表示したら、PDFに画面を切り替えています。
なかむら
ベテラン
会議室デビュー日: 2001/10/22
投稿数: 67
投稿日時: 2003-06-03 17:08
こんにちは。レスありがとうございます。

画面BのPage_LoadイベントにPDF生成のプログラムを記述されているんですよね?
そうするとPDF生成処理が終わるまで画面BのHTMLって表示されないのですが・・・。
Mr.タナカ
ベテラン
会議室デビュー日: 2003/03/15
投稿数: 64
投稿日時: 2003-06-03 17:18
こんにちは。
スレッド見ました。

単純にVBで記述すると、そうなると思います。
私の場合、DHTML(?)を使って切り替えています。

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