Exportar ReporViewer a Pdf de Datagridview no Conectado
Aquí nos encontramos nuevamente, y continuando con un post anterior decidí realizar un post mas, para facilitar la exportación de formato PDF de un reporte hecho en ReportViewer.
Tomando como base de ejemplo del post anterior:
http://jossm03.blogspot.com/2015/08/reportviewer-con-datagridview-no.html
he agregado un boton e implementado la rutina para exportar directo a pdf veamos la captura:
Tomando como base de ejemplo del post anterior:
http://jossm03.blogspot.com/2015/08/reportviewer-con-datagridview-no.html
he agregado un boton e implementado la rutina para exportar directo a pdf veamos la captura:
Siendo asi: les pongo las rutinas que contiene el boton de Exportar a PDF
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Almacenar()
ExportarPDF()
End Sub
Sub Almacenar() 'Almacena los datos presentados en el datagridview
'instanciamos los objetos creados
Try
Dim ds As New DataSet1
Dim dtw As DataRow
For i As Integer = 0 To grid.Rows.Count - 1
dtw = ds.DataTable1.NewRow()
dtw("n") = grid.Item(0, i).Value
dtw("Descripcion") = grid.Item(1, i).Value
dtw("Valor_Unitario") = Replace(CDbl(grid.Item(2, i).Value), ",", ".") ' formato de punto para datatable
dtw("Cantidad") = grid.Item(3, i).Value
dtw("Subtotal") = Replace(CDbl(grid.Item(4, i).Value), ",", ".") 'formato de punto para datatable
ds.DataTable1.Rows.Add(dtw)
Next
''---------------------PREPARAR REPORTE--------------------
fuente.Name = "Productos" ' Nombre identico al que le di al dataset del report en tiempo de diseño
fuente.Value = ds.Tables(0)
''---------------------PREPARAR REPORTE------------------
Catch ex As Exception
End Try
End Sub
Sub ExportarPDF()
Reporte.ReportViewer1.LocalReport.DataSources.Clear()
Reporte.ReportViewer1.LocalReport.DataSources.Add(fuente)
Reporte.ReportViewer1.LocalReport.ReportEmbeddedResource = "DatagridviewNoconectado.Fact.rdlc" 'exactamente como se llaman el proyecto y reporte
Reporte.ReportViewer1.LocalReport.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource("Productos", "DataSet1"))
'Aplica el render y toma como datos la dataset creadas
'Abre en cuadro de dialogo y guarda el archivo PDF
Dim byteViewer As Byte() = Reporte.ReportViewer1.LocalReport.Render("PDF")
Dim saveFileDialog1 As New SaveFileDialog()
saveFileDialog1.Filter = "*Archivos PDF (*.pdf)|*.pdf"
saveFileDialog1.FilterIndex = 2
saveFileDialog1.RestoreDirectory = True
If saveFileDialog1.ShowDialog() = DialogResult.OK Then
Dim newFile As New FileStream(saveFileDialog1.FileName, FileMode.Create)
newFile.Write(byteViewer, 0, byteViewer.Length)
newFile.Close()
End If
System.Diagnostics.Process.Start(saveFileDialog1.FileName)
End Sub
End Class
Al ejecutar les permite con un cuadro de dialogo poder guardar con nombre personalizado y abrir consecutivamente les dejo la captura final
Y esto es todo, espero les sea de utilidad y nos vemos en un siguiente post
El ejemplo modificado:


Comentarios
Publicar un comentario