Stimulsoft - 在 stiViewer 中查看多个报告
Stimulsoft - view multiple reports inside stiViewer
我正在使用 Stimulsoft
库创建报告(StiReport
控件),然后在 StiViewer
控件中显示它。问题是当我将多个报告分配给查看器时,它不会刷新或显示内容,但如果我只向查看器设置 1 个报告,它就可以正常工作。
1 份报告的代码(工作正常):
Dim vw As Viewer.StiViewerControl = ReportViewer.StiViewerControl1
rpt.Render(True)
vw.Report = rpt
vw.Refresh()
ReportViewer.ShowDialog()
几个报告的代码(不起作用):
Dim vw As Viewer.StiViewerControl = ReportViewer.StiViewerControl1
For Each rpt As StiReport In reps
rpt.Render(True)
vw.Reports.Add(rpt)
Next
vw.Refresh()
ReportViewer.ShowDialog()
请记住,我没有收到任何错误。它只是不会在一个查看器中显示多个报告。
有什么建议吗???
找到答案了。我不得不将所有报告合并到一个报告中。
这是代码:
Dim rps As List(Of StiReport)
Dim singleFile As New StiReport
singleFile.NeedsCompiling = False
singleFile.IsRendered = True
Dim newUnit As Units.StiUnit = Units.StiUnit.GetUnitFromReportUnit(singleFile.ReportUnit)
singleFile.RenderedPages.Clear()
For Each rpt As StiReport In rps
For Each page As StiPage In rpt.CompiledReport.RenderedPages
page.Report = singleFile
page.NewGuid()
Dim oldUnit As Units.StiUnit = Units.StiUnit.GetUnitFromReportUnit(rpt.ReportUnit)
If (singleFile.ReportUnit <> rpt.ReportUnit) Then
page.Convert(oldUnit, newUnit)
End If
singleFile.RenderedPages.Add(page)
Next
Next
Dim vw As Viewer.StiViewerControl = ReportViewer.StiViewerControl1
vw.Report = singleFile
vw.Refresh()
ReportViewer.ShowDialog()
我正在使用 Stimulsoft
库创建报告(StiReport
控件),然后在 StiViewer
控件中显示它。问题是当我将多个报告分配给查看器时,它不会刷新或显示内容,但如果我只向查看器设置 1 个报告,它就可以正常工作。
1 份报告的代码(工作正常):
Dim vw As Viewer.StiViewerControl = ReportViewer.StiViewerControl1
rpt.Render(True)
vw.Report = rpt
vw.Refresh()
ReportViewer.ShowDialog()
几个报告的代码(不起作用):
Dim vw As Viewer.StiViewerControl = ReportViewer.StiViewerControl1
For Each rpt As StiReport In reps
rpt.Render(True)
vw.Reports.Add(rpt)
Next
vw.Refresh()
ReportViewer.ShowDialog()
请记住,我没有收到任何错误。它只是不会在一个查看器中显示多个报告。
有什么建议吗???
找到答案了。我不得不将所有报告合并到一个报告中。
这是代码:
Dim rps As List(Of StiReport)
Dim singleFile As New StiReport
singleFile.NeedsCompiling = False
singleFile.IsRendered = True
Dim newUnit As Units.StiUnit = Units.StiUnit.GetUnitFromReportUnit(singleFile.ReportUnit)
singleFile.RenderedPages.Clear()
For Each rpt As StiReport In rps
For Each page As StiPage In rpt.CompiledReport.RenderedPages
page.Report = singleFile
page.NewGuid()
Dim oldUnit As Units.StiUnit = Units.StiUnit.GetUnitFromReportUnit(rpt.ReportUnit)
If (singleFile.ReportUnit <> rpt.ReportUnit) Then
page.Convert(oldUnit, newUnit)
End If
singleFile.RenderedPages.Add(page)
Next
Next
Dim vw As Viewer.StiViewerControl = ReportViewer.StiViewerControl1
vw.Report = singleFile
vw.Refresh()
ReportViewer.ShowDialog()