- - PR -
Active Reportで、SubReportを呼ぶ方法(PDFで出力)
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-03 12:06
前回、この掲示板を利用して、大変助かりました。 また、質問があります。
VB.NETの初心者です。 Web上で、Active Reportを使って、PDFでレポートを出力しようとしています。VB.NETです。 そのメインのActive Reportから、サブレポートを呼ぼうとしています。 メインのレポートのサブレポートを呼ぶ所で、エラーとなります。 エラー内容は以下のとうりです。 System.NullReferenceException: Object reference not set to an instance of an object. サブレポートを呼ぶコードはこれで良いのでしょうか? Private Sub メインのレポート_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ReportStart Me.srptSubReport.Report = New rptSubReport ←ここで、エラーになります。 これより下は、メインのレポートのデータの為にストアドを呼ぶ。。。 End Sub サブレポートでは、Public Sub New()に入り、InitializeReport()へ行くのですが、Private Sub rptSubReport_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ReportStartには、入ることなしに、メインのレポートのサブレポートを呼んでいる所へ戻り、エラーを出します。 何が原因なのでしょうか? どなたか教えてください。 よろしくお願い致します。 | ||||||||
|
投稿日時: 2005-12-03 12:29
情報が少し足りません。
エラーではなく例外ですね。 トレース ログも何もないということは、内部的な例外なのでしょうか。 だとすると、初回例外の位置を教えて頂きたいですね。
srptSubReport が SubReport コントロール クラスなのかどうか判らないのでお答えできません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-12-03 13:06
じゃんぬねっとさん、返答ありがとうございます。
情報が足りないようで、大変失礼致しました。 srptSubReport が SubReport コントロール クラスです。 初回の例外位置は、 Private Sub メインのレポート_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ReportStart のなかの、 Me.srptSubReport.Report = New rptSubReport で、例外になります。 質問の意味がわかってないかもしれません。ごめんなさい。 SubReportにいって、メインのレポートのその上記の位置に戻ってきてしまいます。 | ||||||||
|
投稿日時: 2005-12-03 13:16
最初に InitializeComponent メソッドには行くと書かれてましたよね? けれども、ReportStart イベントには入ってこないと仰られてましたよね? であれば、初回例外の位置は InitializeComponent 内のどこかなのではないのでしょうか? 初回例外とはそういう意味です。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-12-05 11:55
>Me.srptSubReport.Report = New rptSubReport ←ここで、エラーになります。
> これより下は、メインのレポートのデータの為にストアドを呼ぶ。。。 > >End Sub rptSubReportがNULLになっているのでは? Me.srptSubReport.Report = New rptSubReportを Dim rpt AS New rptSubReport Me.srptSubReport.Report = New rpt | ||||||||
|
投稿日時: 2005-12-05 16:35
こういう書き方って出来ましたっけ? 構文エラーになるような気がしますが... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-12-05 18:28
>こういう書き方って出来ましたっけ?
>構文エラーになるような気がしますが... Active Reportのサンプルが以下のようになっていますので 書き方はあっていると思いますが [Visual Basic] Private Sub Detail_Format(ByVal sender As Object, ByVal e As System.EventArgs) Handles Detail.Format Dim rpt As New rptSub() Dim subDS As New DataDynamics.ActiveReports.DataSources.OleDBDataSource() subDS.ConnectionString = Me.ds.ConnectionString subDS.SQL = "Select * from products where categoryID = " + m_categoryID rpt.DataSource = subDS Me.ctlSubreport.Report = rpt End Sub 恐らくHokuさんも参考にされたのではないかと思いました。 | ||||||||
|
投稿日時: 2005-12-05 20:45
VB の場合 rpt 型があれば確かに構文エラーにはならないでしょうけど...
# 肝心な本題は SubReport.Report を指定する前の、 # SubReport が Null だったということですね... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |