- PR -

ASP.netでのクリスタルレポートのデータセット

1
投稿者投稿内容
K
会議室デビュー日: 2006/07/13
投稿数: 8
投稿日時: 2006-07-13 12:54
はじめまして。

現在、visual studio 2005 を使ってASP.netの開発を行っています。

プログラム側で動的な条件で Dataset を生成し、それをクリスタルレポートに渡したいのですが、どうすればいいのか分かりません。

基本的なことですが、
ご教授のほど、よろしくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-13 13:15
引用:

Kさんの書き込み (2006-07-13 12:54) より:

プログラム側で動的な条件で Dataset を生成し、それをクリスタルレポートに渡したいのですが、どうすればいいのか分かりません。


出力したい ReportDocument クラスのインスタンスから、
SetDataSource メソッドで充填した DataSet を渡します。

DataSet を充填する方法は、ご存知だと思いますので割愛します。
ご存知でない場合は、MSDN ライブラリにサンプルがありますので、そちらをご覧ください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-07-13 14:43
さかもとともうします。

http://www.hirano.cc/cgi-bin/cr/yybbs.cgi?

こちらと同じご質問でしょうか?
違っていたらすいません。
K
会議室デビュー日: 2006/07/13
投稿数: 8
投稿日時: 2006-07-13 15:41
ご返答ありがとうございます。
じゃんぬねっと様
引用:

じゃんぬねっとさんの書き込み (2006-07-13 13:15) より:
出力したい ReportDocument クラスのインスタンスから、
SetDataSource メソッドで充填した DataSet を渡します。



SetDataSource メソッド が使えないです。
「SetDataSourceはcrystalreportsのメンバではありません。」というエラーがでてしまいます。

サンプルコードは以下になるのですが、どこが悪いかお分かりなればご教授下さい。
よろしくお願いいたします。

'-----------------------------------
Imports System.Data.SqlClient

Partial Class crystalreports1

Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim strSQL As String
Dim report As crystalreports1
Dim cn As New SqlConnection("Server= ;Initial catalog= ;Integrated Security=SSPI;")

cn.Open()

     'SQL文の生成
strSQL = ""
strSQL = strSQL & "SQL文"

Dim cmd As New SqlCommand(strSQL, cn)
Dim dr As SqlDataReader = cmd.ExecuteReader()
   
    'ここでレコードセットを引き渡したいのですが

    report.SetDataSource = dr
    とすると
    「SetDataSourceはcrystalreports1のメンバではありません。」
    というエラーがでてしまいます。


dr.Close()
cn.Close()

End Sub
End Class
'-------------------------------


さかもと様。
そちらも私が書き込みしました。
初心者なもので分からないことだらけですが、よろしくお願いいたします。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-13 16:29
引用:

Kさんの書き込み (2006-07-13 15:41) より:

SetDataSource メソッド が使えないです。
「SetDataSourceはcrystalreportsのメンバではありません。」というエラーがでてしまいます。
(snip)

Dim dr As SqlDataReader = cmd.ExecuteReader()

'ここでレコードセットを引き渡したいのですが
report.SetDataSource = dr とすると


SetDataSource メンバは、K さんも書かれたように メソッド ですよね。
プロパティのように利用するのは、おかしくはないでしょうか?

また、渡そうとしているのは DataSet のインスタンスではないですよね?
dr、つまり SqlDataReader のインスタンスを渡そうとしていますよね?

引用:

「SetDataSourceはcrystalreports1のメンバではありません。」 というエラーがでてしまいます。


しかし、コンパイル エラーのメッセージがこれになっているのは不可解です。
上記で指摘したことが理由であれば、おそらく別のメッセージになるハズですから...

ReportDocument.SetDataSource メソッド で良いと思うのですが...

うーん、"メンバではありません" となると...
'crystalreports1' は、どの型のクラスから継承されたものですか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
K
会議室デビュー日: 2006/07/13
投稿数: 8
投稿日時: 2006-07-14 09:33
解決しました!
じゃんぬねっと様に教えていただいたことを自分なりにいろいろ調べ、
CrystalReportSource1.ReportDocument.SetDataSource(DataSet)
とすると出来ました!

皆様いろいろありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-14 09:47
引用:

Kさんの書き込み (2006-07-14 09:33) より:

じゃんぬねっと様に教えていただいたことを自分なりにいろいろ調べ、
CrystalReportSource1.ReportDocument.SetDataSource(DataSet)
とすると出来ました!


解決できたようで、私も嬉しいです。
やはり、SetDataSource メソッドを呼び出す型が間違っていたのですね。

引用:

出力したい ReportDocument クラスのインスタンスから
SetDataSource メソッドで充填した DataSet を渡します。


とは書いていたのですが、ReportSource にぶらさがっているとは...
やはり、メンバ関連で躓いた時に最初に見るべきは '型' ですね。

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

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