代码改变世界

在水晶报表中插入子报表,并动态添加数据源

2007-04-03 17:20  ruinet  阅读(5774)  评论(1编辑  收藏  举报
如图在主报表中插入两个自报表:

下面一段代码就是实现:
 Dim AppTionPath As String = HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath)
      
Dim Path As String = AppTionPath & "\crTrip.rpt"   '主报表
      Dim ID As Int32 = Request("ID")
      
Dim dt As DataTable
      
Dim DBObj As New DBBussinessTrip
      dt 
= DBObj.GetTripByID(ID)
      
Dim MyReportDoc As New ReportDocument
      MyReportDoc.Load(Path)
      
Dim Rdom As ReportDocument = MyReportDoc.Subreports("crTripCost.rpt")'自报表1
      Dim dtcost As DataTable = DBObj.GetCost(ID)
      
Dim RdocContent As ReportDocument = MyReportDoc.Subreports("crTripContent.rpt")'自报表2
      Dim dtContent As DataTable = DBObj.GetContent(ID)
      
If Not IsNothing(RdocContent) Then
        RdocContent.SetDataSource(dtContent)
      
End If

      
If Not IsNothing(Rdom) Then
        Rdom.SetDataSource(dtcost)

      
End If
      MyReportDoc.SetDataSource(dt)
      CrystalReportViewer1.ReportSource 
= MyReportDoc

free web counter