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 ClassAl 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