更新:我在這裏問一個更普遍的問題:Can I do two levels of linking in Crystal Reports?Crystal Reports:有沒有辦法在子報表中有效地獲取子報表?
我使用VB.NET中的Crystal Reports和Visual Studio 2005
我有幾個子報表的報告。我將List(Of MainStuff)設置爲主報表的數據源。我將List(Of SubreportStuff)設置爲子報表的數據源。每個SubreportStuff都有一個鏈接到特定MainStuff的鍵,因此報表將每個MainStuff項目與其相關的SubreportStuff項目分組。 (或者在DB級別,SubreportStuff項目有一個外鍵,它是MainStuff中的主鍵。)
下面顯示了包含CrystalReportsViewer的對話框的加載函數。在Crystal Reports報表編輯器(在VS 2005中)中,我設置了子報表鏈接,以便只將相關項目拉入報表的那一部分。
Imports System.Windows.Forms
Public Class dlgMyReport
Private rpt As New MyReport
Public theMainList As New List(Of MainStuff)
Dim theSubreportList As New List(Of SubreportStuff)
Private Sub dlgMyReport_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
rpt.SetDataSource(theMainList)
If theSubreportStuff.Count > 0 Then
rpt.Subreports.Item("subReport").SetDataSource(theSubreportList)
End If
Me.StuffViewer.ReportSource = rpt
End Sub
... ' other subs and functions
End Class
這工作正常。
現在,我需要做的事實質上是同樣的事情,但是根據子報告項目中的鍵拉取項目。這意味着在子報表中有一個子報表。但是,我似乎沒有做到這一點(當我嘗試插入已經是子報表的東西時,插入子報表的選項會灰顯)。
有沒有辦法可以做到這一點? (我能以某種方式將子報表關係降低到另一個級別嗎?)
一如既往地感謝!
感謝您確認我的懷疑。有沒有辦法在子報表中包含項目列表,其中這個項目列表中有子報表項目作爲主鍵? – John 2010-01-30 04:56:23
我在這裏概括了我的問題:http://stackoverflow.com/questions/2166963/can-i-do-two-levels-of-linking-in-crystal-reports – John 2010-01-30 05:27:16
我不知道我理解你的問題。你的意思是'有沒有辦法將主要報告與子報告聯繫起來,子報告中的數據是基於主報告中的數據值?'?如果是這樣,答案是'是的'。 在任何情況下,您都可以在不使用子報告的情況下實現預期的結果。首先將三個表格添加到您的報告並根據需要鏈接它們。接下來,爲每個部門插入一個組:department_name,division_name和group_name。最後是利潤。 – craig 2010-01-30 14:42:29