2010-01-30 103 views
1

更新:我在這裏問一個更普遍的問題: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 

這工作正常。

現在,我需要做的事實質上是同樣的事情,但是根據子報告項目中的鍵拉取項目。這意味着在子報表中有一個子報表。但是,我似乎沒有做到這一點(當我嘗試插入已經是子報表的東西時,插入子報表的選項會灰顯)。

有沒有辦法可以做到這一點? (我能以某種方式將子報表關係降低到另一個級別嗎?)

一如既往地感謝!

回答

3

子報表中的子報表在Crystal Reports中是不可能的。

+0

感謝您確認我的懷疑。有沒有辦法在子報表中包含項目列表,其中這個項目列表中有子報表項目作爲主鍵? – John 2010-01-30 04:56:23

+0

我在這裏概括了我的問題:http://stackoverflow.com/questions/2166963/can-i-do-two-levels-of-linking-in-crystal-reports – John 2010-01-30 05:27:16

+0

我不知道我理解你的問題。你的意思是'有沒有辦法將主要報告與子報告聯繫起來,子報告中的數據是基於主報告中的數據值?'?如果是這樣,答案是'是的'。 在任何情況下,您都可以在不使用子報告的情況下實現預期的結果。首先將三個表格添加到您的報告並根據需要鏈接它們。接下來,爲每個部門插入一個組:department_name,division_name和group_name。最後是利潤。 – craig 2010-01-30 14:42:29

相關問題