Stimulsoft - 在stiViewer中查看多个报告

时间:2017-04-23 09:56:55

标签: vb.net reporting stimulsoft

我正在使用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()

请记住,我没有收到任何错误。它只是不会在一个查看器中显示多个报告。

任何建议???

1 个答案:

答案 0 :(得分:0)

找到了答案。我必须在一份报告中合并所有报告。

这是代码:

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()
相关问题