私は2つのサブレポート(2を含む)を持つメインレポートを持っています。これはGREATに動作します - 現在、私が持っているもの、私はデータを照会し、このデータは、私が第一サブレポートのデータを移入するのAddHandlerを追加投入されると、メインレポート-Report1 rdlcレポートを含むサブレポートのハンドラを追加します。
- これです! 私は第二サブレポートのために同じようにデータを照会しようとしているが、それは...データの私のいずれかを示していない-Now
CODE:ない含まれているデータや他のコードを照会 」...
Dim rds As ReportDataSource = New ReportDataSource("DataSet1", ds.Tables("DataTable2"))
ReportViewer1.LocalReport.DataSources.Clear()
ReportViewer1.LocalReport.DataSources.Add(rds)
AddHandler ReportViewer1.LocalReport.SubreportProcessing, AddressOf Me.SubreportProcessingEventHandler
Public Sub SubreportProcessingEventHandler(ByVal sender As Object, ByVal e As SubreportProcessingEventArgs)
Dim adapter1 As SqlDataAdapter
Dim sql As String = ""
Dim ds As New DataSet
Dim objConnection As New SqlClient.SqlConnection
objConnection = New SqlConnection(conn)
objConnection.Open()
最後に、最初のサブレポートのデータを選択します。ここではデータが正しく表示されます!
SQL="SELECT A,B from tblA"
adapter1 = New SqlDataAdapter(sql, conn)
adapter1.Fill(ds, "DataTable3")
e.DataSources.Add(New ReportDataSource("DataSet1", ds.Tables("DataTable3")))
サブレポート2についても同様です。データは通過しません!
SQL ="SELECT C,D from tblB"
adapter1 = New SqlDataAdapter(sql, conn)
adapter1.Fill(ds, "DataTable4")
e.DataSources.Add(New ReportDataSource("DataSet1", ds.Tables("DataTable4")))
End sub
正確なフィールドを持つサブレポート2のDataTable4を作成しました。私は基本的に両方のサブレポートに対して同じことをやっています。
複数のハンドラが必要ですか?私は間違っていますか?あなたが与えてくれたコードを見てみると
iircのパラメータは、コールに必要なもの、つまりデータを呼び出すサブレポートを特定できるeventargsに渡されます。しかし、あなたが与えたコードを見ると(単純化しても分かると思いますが)、サブレポートが必要なようには見えません - 複数のデータソースだけです。つまり、通常はパラメータが 'e'に渡され、WHERE句として機能し、サブレポートが関連する子データを親レポートのデータに表示するのに対して、無関係なデータを引き出しているように見えます。 – peterG
@peterg - 私はデータを照会する必要があります - 実際には私のIDの値をたくさん保存するので、多くの左結合を行っています - それを表示するには、参照表にテキストを表示するために左に置く必要があります – BobSki
@peterG - これは関連するデータです - 同じCLIENTIDのすべてです。このフィールドはすべてのテーブルに表示されます。私はちょうどこれを動作させる方法を知らない。 .rdlcレポートを扱うのは初めてのことです。私はこれが私のレポートの1つのために働くことがわかったので、すべての人のためにそれを続けています。私はAccessのユーザーの方です。 – BobSki