- PR -

【ActiveReports2.0J】WebViewerコントロールへのレポート表示

1
投稿者投稿内容
やまじぃ
常連さん
会議室デビュー日: 2007/05/28
投稿数: 22
お住まい・勤務地: 日本国
投稿日時: 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の該当フィールド名をデザイン時に記述。
コードプログラム中では何もしていない。

-------------------------------------------------------------------------------
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-06-05 17:52
Web の場合は ReportStart イベントで DataMember と DataSource の設定をしなければならなかったような気がします。かなり自信がありません。

# ActiveXViewer ではないですよね?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
やまじぃ
常連さん
会議室デビュー日: 2007/05/28
投稿数: 22
お住まい・勤務地: 日本国
投稿日時: 2007-06-05 18:30
引用:

じゃんぬねっとさんの書き込み (2007-06-05 17:52) より:
Web の場合は ReportStart イベントで DataMember と DataSource の設定をしなければならなかったような気がします。かなり自信がありません。

# ActiveXViewer ではないですよね?





じゃんぬねっとさん、いつも回答ありがとうございます。
はい、ActiveXViewerではありません。WebViewerで間違いないです。
まだソース変更して試していませんので、後ほど結果報告致します。
やまじぃ
常連さん
会議室デビュー日: 2007/05/28
投稿数: 22
お住まい・勤務地: 日本国
投稿日時: 2007-06-05 18:55
引用:

やまじぃさんの書き込み (2007-06-05 18:30) より:

まだソース変更して試していませんので、後ほど結果報告致します。




結果はNGで現在出ている現象は変わりませんでした。
やまじぃ
常連さん
会議室デビュー日: 2007/05/28
投稿数: 22
お住まい・勤務地: 日本国
投稿日時: 2007-06-05 19:45
引用:

やまじぃさんの書き込み (2007-06-05 18:55) より:
引用:

やまじぃさんの書き込み (2007-06-05 18:30) より:

まだソース変更して試していませんので、後ほど結果報告致します。




結果はNGで現在出ている現象は変わりませんでした。




自己解決したので報告致します。

やはり基本的なロジックは合っていたようです。
以下変更点

'レポート生成
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イベント・・・のヒントがなければ無理だったと思います。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-06-05 20:27
引用:

やまじぃさんの書き込み (2007-06-05 19:45) より:

あとはアンバウンドレポートなのでWebページのReportNameを空にしておく
※これまでずっとNamespace.Class名を設定していたため出力されなかった。


アッー!! アンバウンド レポート + ReportName プロパティの罠でしたか。以前にも同様のスレッドがあったことを記憶しています。(おそらくこれで 2 回目) orz

お役に立てず申し訳ありませんでした。その上フォローまでして頂いて感謝です。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

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