- - PR -
asp.netでActive Reportを使用してPDFで出力する方法
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-11-30 08:07
.NETの初心者です。まだ、数ヶ月しか経験がありません。
VB.NETを使用してます。WEB上で、Active Reportで作ったデータをPDFで出したいのですが、うまくできません。 空欄のWEBFORMのコードには、 Rpt.Run(False) として、Active Reportを呼ぶようにしています。 Active Reportでは、 Private Sub rptDataReader_ReportStart (ストアドを呼びます) Private Sub rptDataReader_DataInitialize Private Sub rptDataReader_FetchData をよぶようにしていますが、rptDataReader_ReportStartで、rptDataReader_ReportStart(Object sender, EventArgs e)のオブジェクトのインスタンスをセットしてないです、System.NullReferenceExceptionというエラーとなってしまいます。 色々ネットで調べてみましたが、どうしたら良いのかさっぱりわかりません。上記の3つのPrivate Subをコメントアウトすると、データは取ってきませんがPDFとしては出力できてます。 初歩的な質問で大変申し訳ないのですが、どのようにしてActive Reportでデータをとって、PDFに出力すればよいのでしょうか? よろしくお願いします。 | ||||||||||||
|
投稿日時: 2005-12-02 04:59
自己レスです。エラーでは、
System.NullReferenceException: Object reference not set to an instance of an object. と、でます。 WEBFORMでのActive Reportの呼び方が悪いのでしょうか? よろしくお願いします。 | ||||||||||||
|
投稿日時: 2005-12-02 09:31
これだけでいいですよね。
え? 自分で呼んでいるのですか?
自分で呼んでいるからなっているだけじゃないでしょうか? Run メソッドで実行された場合、イベント引数が null になることはありません。(普通) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-12-02 09:36
細かいことがよく分かりませんが、System.NullReferenceExceptionはオブジェクトが
nullですといっています。(あたりまでですが) rptDataReader_DataInitializeでDataSourceにデータをセットし、Label等のオブジェ クトのDataFieldプロパティーでフィールド名を設定してデータを当て込んでいるであれば フィールド上でNULLがある場合、System.NullReferenceExceptionで落ちてしまいます。 私の場合は、NVL2を使ってSQLでNULLをなくしました。 | ||||||||||||
|
投稿日時: 2005-12-02 10:09
じゃんぬねっと様、アリババ様、返答大変ありがとうございます! 誰からもレスがつかなかったので、心配しておりました。
初心者でありますので、Active Reportなど理解していない点もあると思うのですが、自分なりにHelpを読んだり,リサーチしたりしていましたが、未だ解決しておりません。 わかりにくいので、コードを書きます。 Private myReader As SqlDataReader Private myCommand As SqlCommand ***************************************************** Private Sub ActiveReport1_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ReportStart Dim myConnString As String = "Connectionの情報" Dim myConnection As New SqlConnection(myConnString) Try myCommand.Connection = myConnection (←ここでエラーになる) With myCommand .Connection.Open() .CommandType = CommandType.StoredProcedure .CommandText = "Stored_Proc_Name" .Parameters.Add("@test_value", SqlDbType.Int).Value = 0 End With myReader = myCommand.ExecuteReader Catch ex As Exception lblError.Text = ex.ToString() End Try End Sub **************************************************************** Private Sub ActiveReport1_DataInitialize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.DataInitialize Fields.Add("aaa") End Sub *********************************************************** Private Sub ActiveReport1_FetchData(ByVal sender As Object, ByVal eArgs As DataDynamics.ActiveReports.ActiveReport.FetchEventArgs) Handles MyBase.FetchData myReader.Read() Fields("aaa").Value = myReader("aaa").ToString() myReader.Close() End Sub Connectionのところでエラーになるので、ConnectionがNULLということなのでしょうか? よろしくお願いします。 | ||||||||||||
|
投稿日時: 2005-12-02 11:05
myCommand が Null のままになっていますね
myConnection はいつ Close,Dispose されるんでしょう このままではセッションが残ってしまう気がします。 | ||||||||||||
|
投稿日時: 2005-12-02 12:00
かるあ様、返信ありがとうございます!
Closeがなかったので、付け加えました。 そして、PDFへ出るようになりました。 Private myCommand As New SqlCommand と書き換えましたら、きちんと出力できました。 ありがとうございました。 |
1