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

如图在主报表中插入两个自报表:
在水晶报表中插入子报表,并动态添加数据源
下面一段代码就是实现:
在水晶报表中插入子报表,并动态添加数据源 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
在水晶报表中插入子报表,并动态添加数据源

转载于:https://www.cnblogs.com/ruinet/archive/2007/04/03/698625.html