Enunciado
Usando Visual Basic.NET, descarga un informe desde Report Server que puede ser utilizado para mandarlo por correo o generar una descarga por web.
Solución
Es tan simple como esto:
Private Function solicitaInformeSSRS(idRespuesta As Integer) As Byte()
Dim informe As New ServerReport
With informe
.ReportServerUrl = New Uri(My.Settings.urlServerReport)
.ReportPath = My.Settings.SSRSEncuestaPromocion
.ReportServerCredentials = New MyReportServerCredentials
.SetParameters(New ReportParameter("idRespuesta", idRespuesta))
.Refresh()
Return .Render("PDF")
End With
End Function
Hay que utilizar la clase
MyReportServerCredentials que puedes encontare en mi post
Autentificación Reporting Services
Usos:
Una vez descargado el array de byte, puedes utilizarlo para adjuntarlo en un email como un adjunto:
msj.Attachments.Add(New Attachment(New System.IO.MemoryStream(informe),"informe.pdf"))
O entregarlo en el stream de salida de una página (descarga del PDF):
Response.Clear()
Response.ContentType = "Application/PDF"
Response.AddHeader("content-disposition", String.Format("attachment; filename={0}.PDF", "archivo.PDF"))
Response.BinaryWrite(bytes)
Comentario:
Usar informes del servidor resulta mas simple, y no digamos ya si existen subinformes, ver
Subinformes RDLC en Report cargado dinámicamente.
No hay comentarios:
Publicar un comentario