2016-12-16 114 views
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。我基本上爲兩個子報表都做同樣的事情。

我需要多個處理程序嗎?我究竟做錯了什麼?

enter image description here

+0

iirc參數在eventargs中傳遞,它允許您確定調用需要什麼,即哪個子報表正在調用其數據。但是,看看你給出的代碼(雖然我很欣賞它的簡化),但它看起來並不像你需要子報表 - 只有多個數據源。我的意思是,通常在'e'中傳遞一個參數,該參數有效地充當WHERE子句,以便子報表向父報表中的數據顯示相關的子數據,而您似乎正在拉動無關的數據。 – peterG

+0

@peterg - 我需要查詢數據 - 我實際上做了很多左連接,因爲我將很多我的值保存爲ID - 所以當顯示它時,我需要將我的參考表格左鍵加入以顯示文本 – BobSki

+0

@peterG - 現在它是相關的數據 - 這一切都是爲了相同的CLIENTTID。該字段出現在我的所有表格中。我只是不知道如何讓這個工作。這是我第一次使用.rdlc報告。我發現這適用於我的其中一個報告,所以我繼續爲所有人做。我更喜歡女士Access用戶 – BobSki

回答

2

望着你給的代碼,你不需要子報表在所有。最簡單的(如果不一定是最有效的)解決方法是使用三個單獨的查詢,以及相應的DataTables和ReportDataSources。更一般地說,乍一看似乎要求子報表的情況實際上可以通過其他方式解決,例如分組和/或使用具有一個或多個聯接的查詢。例如,規範的訂單加OrderLines報告可以使用連接查詢結合按照訂單信息持有FIRST關鍵字的文本框和顯示訂單行的Tablix來構造。 此外,我發現此鏈接有幫助:http://www.gotreportviewer.com/subreports/index.html