09/01/2009, 13:32
|
| | Fecha de Ingreso: enero-2009
Mensajes: 3
Antigüedad: 16 años Puntos: 0 | |
Respuesta: Report Viewer Hola, bueno como ando algo corto de tiempo en el desarrollo te explicaré como lo hice.
Respecto al exportar el archivo me refiero a no tener la necesidad de mostrar el reporte en un webform si no hacerlo internamente, teniendo una instancia del reportviewer, se asinga el datasource, los parametros y utilizar el metodo render del reportviewer como se muestra en el codigo que regresa un arreglo de bytes y este puede escribirse con un filestream.
la funcion me regresa un string con la ruta de la ubicacion del archivo creado en el servidor.
Para lo que yo necesitaba obtuve todas las personas e hice un ciclo para generar los archivos para cada uno y posteriormente ir enviandolos por e-mail, algo rustico creo yo pero funciona por el momento,
Public Shared Function Exportar(ByVal nombre As String, ByVal filename As String) As String
Dim visor As New ReportViewer
Dim warnings As Warning()
Dim streamids As String()
Dim mimeType As String
Dim encoding As String
Dim filenameExtension As String
If Not Datos(nombre) Is Nothing Then
Reporta(visor)
AsignaParametros(visor)
End If
Dim bytes As Byte()
Try
If visor.ProcessingMode = ProcessingMode.Local Then
bytes = visor.LocalReport.Render("PDF", Nothing, mimeType, encoding, filenameExtension, streamids, warnings)
Else
bytes = visor.ServerReport.Render("PDF", Nothing, mimeType, encoding, filenameExtension, streamids, warnings)
End If
filename = filename & ".pdf"
Try
If File.Exists(filename) Then File.Delete(filename)
Catch ex As Exception
Exit Try
End Try
Using fs As New FileStream(filename, FileMode.Create, FileAccess.ReadWrite)
fs.Write(bytes, 0, bytes.Length)
End Using
Return filename
Catch ex As Exception
Return String.Empty
End Try |