Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/01/2009, 13:32
imkten
 
Fecha de Ingreso: enero-2009
Mensajes: 3
Antigüedad: 15 años, 4 meses
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