在水晶报表中插入子报表,并动态添加数据源
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
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