I have a page with a Report Viewer in ASP.NET. When I built the report in SSRS, it was fast (taking 1-3 seconds).
Saving it as PDF or EXCEL is also fast:
Private Sub SetReportParameters()
'Set Processing Mode
ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote
'Set report server and report path
ReportViewer1.ServerReport.ReportServerUrl = _
New Uri("xxx")
ReportViewer1.ServerReport.ReportPath = _
"xxx"
Dim paramList As New Generic.List(Of ReportParameter)
Dim pInfo As ReportParameterInfoCollection
pInfo = ReportViewer1.ServerReport.GetParameters()
'if you have report parameters - add them here
paramList.Add(New ReportParameter("xxx", "xxx", True))
ReportViewer1.ServerReport.SetParameters(paramList)
'Process and render the report
ReportViewer1.ServerReport.Refresh()
'output as PDF
Dim returnValue As Byte()
Dim format As String = "EXCEL"
Dim deviceinfo As String = ""
Dim mimeType As String = ""
Dim encoding As String = ""
Dim extension As String = "xls"
Dim streams As String() = Nothing
Dim warnings As Microsoft.Reporting.WebForms.Warning() = Nothing
returnValue = ReportViewer1.ServerReport.Render(format, deviceinfo, mimeType, encoding, extension, streams, warnings)
Response.Buffer = True
Response.Clear()
Response.ContentType = mimeType
Response.AddHeader("content-disposition", "attachment; filename=xxx.xls")
Response.BinaryWrite(returnValue)
Response.Flush()
Response.End()
End Sub
But, if I want to show it in the page, it is TOO slow (taking more the 10 minutes to render).
Private Sub SetReportParameters()
'Set Processing Mode
ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote
'Set report server and report path
ReportViewer1.ServerReport.ReportServerUrl = _
New Uri("xxx")
ReportViewer1.ServerReport.ReportPath = _
"xxx"
Dim paramList As New Generic.List(Of ReportParameter)
Dim pInfo As ReportParameterInfoCollection
pInfo = ReportViewer1.ServerReport.GetParameters()
'if you have report parameters - add them here
paramList.Add(New ReportParameter("xxx", "xxx", True))
ReportViewer1.ServerReport.SetParameters(paramList)
'Process and render the report
ReportViewer1.ServerReport.Refresh()
End Sub
I am using:
- SQL Server 2012
- .NET Framework 4.5
What am I doing wrong?
Aucun commentaire:
Enregistrer un commentaire