- - PR -
CrystalReportsViewerのツールバーにあるボタンについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-11-20 14:51
visual studio 2008にてWebアプリケーションを作成しています。
下記の内容とまったく同じ現象に陥っています。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=43083&forum=7 この現象はやはりバグなのでしょうか? VS2008を再インストールした方が良いのでしょうか? 解決方法をご存知の方、宜しくお願いします。 |
|
投稿日時: 2008-11-20 15:41
Crystal Reports のバージョンは同じ(Ver.10)なんでしょうか?
_________________ Nakamura Blog |
|
投稿日時: 2008-11-20 16:14
なかむら様、返信ありがとうございます。
Crystal Reports のバージョンは、Visual Studio 2008 proに入っていた 「Crystal Reports Basic for Visual Studio 2008」です。 環境は違うのですが、現象がまったく同じで困っています。 画面に内容が表示されて、次ページボタンを押すと2ページまでは表示されるのですが、3ページ以降は表示されずに2ページ目のままです。 最終ページボタンを押すと、ちゃんと最終ページが表示されます。 前ページボタンを押すと、どのページからでも1ページ目に戻ってしまいます。 他に足りない情報がありましたら、記載しますので宜しくお願いします。 |
|
投稿日時: 2008-11-20 16:56
私の環境では、[次のページ]ボタンで2ページ目以降も表示されるんですが・・・。
環境は ・Windows Vista SP1 ・VisualStudio 2008 Professional Edition SP1 ・Crystal Reports は VisualStudio 2008 Professional Edition に同梱されているもの です。 試した内容は次の通り。 (1)新規作成で Visual Basic の Crystal Reports アプリケーションを選択 (2)ウィザードで空のレポートを作成 (3)「項目の追加」で DataSet を追加 (4)サーバーエクスプローラーから適当なテーブルを DataSet のデザイナにドロップ (5)レポートに(4)で追加したテーブルの列を配置 (6)Form の OnLoad をオーバーライドし、DataAdater でテーブルの全データを取得 (7)(6)で取得したデータを、すぐに CrystalReportのインスタンスにセット _________________ Nakamura Blog [ メッセージ編集済み 編集者: なかむら 編集日時 2008-11-20 17:01 ] |
|
投稿日時: 2008-11-20 17:10
しまった、「Web アプリケーション」でしたね。
失礼しました。 |
|
投稿日時: 2008-11-21 13:14
こんにちは。
バージョンは違いますが、Crystal Reports for Visual Studio 2005で同様の現象が発生して行った対処を載せます。(参考になればよいのですが・・・) // レポートドキュメント → プレビュー表示ページ(クラス)のPrivate変数 private CrystalDecisions.CrystalReports.Engine.ReportDocument Report; protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { // セッション情報からレポートドキュメントを取得してビューワーへセット rptViewer.ReportSource = (CrystalDecisions.CrystalReports.Engine.ReportDocument)Session[Constants.RPT_DOCUMENT]; return; } // 出力レポートの生成 Report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); Report.Load(Request.MapPath("ReportFile.rpt")); // レポートデータテーブルへの格納 dsOriginalRpt dsRpt = new dsOriginalRpt(); ・ ・ ・ Report.SetDataSource(dsRpt); // セッションへレポートドキュメントを設定 Session[Constants.RPT_DOCUMENT] = Report; // レポートソースへのバインド rptMatterViewer.ReportSource = Report; } 要するに、初期ロード時はレポートデータをDB等から取得してレポートドキュメントを生成した後に「レポートドキュメントをセッションへ格納」、ポストバック時は、セッション変数のレポートドキュメントをビューワーにバインドする手法です。 |
|
投稿日時: 2008-11-21 16:08
kuta様 ありがとうございます。
ご提示頂いたコードを元に試してみたいと思います。 不明点が出てきた際は、再度質問してしまうかもしれませんが宜しくお願いします。 |
1