- - PR -
【ActiveReports2.0J】WebViewerコントロールへのレポート表示
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-06-05 16:55
いつも初歩的な質問ですみません。
ActiveReportsを使用してWebページに配置したWebViewerへ帳票を出力しようとしています。 表示自体はされるのですが、罫線とラベル、Detailに関しては値のないテキストボックスが1レコード表示されるのみです(デザイン時にTextプロパティに記述した文字列のみです)。 該当データをDataSetで取得し、アンバウンドレポートの各コントロールのDataFieldへバインディングし、そのレポートをWebViewerへセットする、というものです。 こちらのスレッドで調べ・質問したり、もちろんヘルプ・サンプルも参考にしているのですがActiveReports自体の経験がないため完全に行き詰まってしまいました。 試しにWindowsフォームにViewerコントロールを貼り付けてまったく同じレポートをセットしたところ普通に表示されました(出力先がWebフォームとWindowsフォームという以外にロジックの違いはありません)。 正直もう何が何だかわかりません、どなたかヒントでも結構ですのでご存じの方助けて下さい。 よろしくお願い致します。 ------------------------------------------------------------------------------- <Webフォーム> '該当レコードを取得 Dim reportDataSet As New DataSet reportDataSet = 'データセット取得メソッド 'レポート生成 Dim A As New TestReport() A.DataSource = reportDataSet 'レポートにDataSetを連結 A.DataMember = reportDataSet.Tables(0).TableName 'DataMemberにテーブル名をセット A.Run() 'レポート実行 '↓この部分をWindowsフォームのViewerコントロールにすると正常に出力された WebViewer1.ClearCachedReport() 'キャッシュしていたレポートをクリア WebViewer1.Report = A 'ビューワーにレポートをセット WebViewer1.Visible = True 'ビューワー可視 <レポート:TestReport> 各テキストボックスのDataFieldにreportDataSet.Tables(0).TableNameの該当フィールド名をデザイン時に記述。 コードプログラム中では何もしていない。 ------------------------------------------------------------------------------- | ||||||||
|
投稿日時: 2007-06-05 17:52
Web の場合は ReportStart イベントで DataMember と DataSource の設定をしなければならなかったような気がします。かなり自信がありません。
# ActiveXViewer ではないですよね? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-06-05 18:30
じゃんぬねっとさん、いつも回答ありがとうございます。 はい、ActiveXViewerではありません。WebViewerで間違いないです。 まだソース変更して試していませんので、後ほど結果報告致します。 | ||||||||
|
投稿日時: 2007-06-05 18:55
結果はNGで現在出ている現象は変わりませんでした。 | ||||||||
|
投稿日時: 2007-06-05 19:45
自己解決したので報告致します。 やはり基本的なロジックは合っていたようです。 以下変更点 'レポート生成 Dim A As New TestReport() A.DataSource = reportDataSet 'レポートにDataSetを連結 A.DataMember = reportDataSet.Tables(0).TableName 'DataMemberにテーブル --> レポート側にプロパティとして Public reportDataSet As DatSet 'DataSource設定用 Public reportTableName As String 'DataMember設定用 追加しておく Webページ側で A.reportDataSet = reportDataSet '取得したDataSetをレポートに引き渡し A.reportTableName = reportDataSet.Tables(0).TableName '取得したDataSetのTableNameをDataMemberに引き渡し あとはアンバウンドレポートなのでWebページのReportNameを空にしておく ※これまでずっとNamespace.Class名を設定していたため出力されなかった。 ヘッダのオーバーレイなど、課題は山積みですがどうにか一歩前に進めました。 じゃんぬねっとさん、アドバイスありがとうございました。 ReportStartイベント・・・のヒントがなければ無理だったと思います。 | ||||||||
|
投稿日時: 2007-06-05 20:27
アッー!! アンバウンド レポート + ReportName プロパティの罠でしたか。以前にも同様のスレッドがあったことを記憶しています。(おそらくこれで 2 回目) orz お役に立てず申し訳ありませんでした。その上フォローまでして頂いて感謝です。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1