2017-04-23 146 views
0

我使用Stimulsoft库创建报告(StiReport控制),然后在StiViewer控件中显示它。问题是当我给查看器分配多个报告时,它不刷新或显示内容,但它工作得很好,如果我只给查看器设置1个报告。 1个报告Stimulsoft - 在stiView中查看多个报告

代码(工作正常):几个报告(不工作)

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() 

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

任何建议???

回答

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()