1
我有一個包含2個子報表的主報表(試圖包含2個報表)。目前,我有什麼是這個...使用rdlc報告添加子報表處理程序vb.net
- 在按鈕點擊我查詢數據並填充主報告-Report1
- 一旦該數據填充我加了的AddHandler來填充報表1的數據 - 這個偉大的工程! - 現在我想查詢的數據爲第二子報表以同樣的方式,但它沒有顯示我的任何數據...
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 - 現在它是相關的數據 - 這一切都是爲了相同的CLIENTTID。該字段出現在我的所有表格中。我只是不知道如何讓這個工作。這是我第一次使用.rdlc報告。我發現這適用於我的其中一個報告,所以我繼續爲所有人做。我更喜歡女士Access用戶 – BobSki