这里是CS下的:
'显示子报表
Function showSubReport(ByVal mainReport As ReportClass, ByVal Ds As DataSet, ByVal TableName As String, ByVal SubReportControlName As String)
'Dim SubReport As New ReportDocument()
'SubReport = mainReport.OpenSubreport(SubReportName)
Ds.Tables(0).TableName = TableName
'SubReport.SetDataSource(Ds)
'SubReport.Refresh()
Dim subreportName As String
Dim subreportObject As SubreportObject
Dim subreport As New ReportDocument()
If TypeOf (mainReport.ReportDefinition.ReportObjects.Item(SubReportControlName)) Is SubreportObject Then
subreportObject = mainReport.ReportDefinition.ReportObjects.Item(SubReportControlName)
' 获取子报表名称。
SubReportName = SubreportObject.SubreportName
' 打开子报表作为 ReportDocument。
subreport = SubreportObject.OpenSubreport(SubReportName)
' 预览子报表。
subreport.SetDataSource(Ds)
subreport.Refresh()
End If
End Function
'显示子报表
Function showSubReport(ByVal mainReport As ReportClass, ByVal StorePName As String, ByVal PN() As String, ByVal PV() As String, ByVal TableName As String, ByVal SubReportName As String)
Dim SubReport As New ReportDocument()
SubReport = mainReport.OpenSubreport(SubReportName)
Dim Ds As New DataSet() : Dim Ca As New ClassData()
Ds = Ca.DS(StorePName, PV, PN)
Ds.Tables(0).TableName = TableName
SubReport.SetDataSource(Ds)
SubReport.Refresh()
End Function