CLR: .Net / Mono / Boo / Otros CLR > C#

 Generar PDF a partir de reportviewer

(1/1)

lugarda:
Hola a todos, tengo un pequeño inconveniente y lo pongo en el foro para ver si me dan alguna idea:

Desarrolle en c# un programa para generar un informe a partir de un reportviewer con informacion de la base de datos y me lo despliega en pantalla. Hasta alli todo va super. Lo que quiero es que el informe no lo despliegue en pantalla , sino que automaticamente se genere el archivo en PDF y se almacene fisicamente en una carpeta de mi disco.
Estuve revisando algunos ejemplos que encontré para generar archivos PDF haciendo uso de la libreria iTextSharp, pero la desventaja que tengo es que solo podria usar esta libreria , si los datos los estuviera leyendo de un archivo tipo texto y mi  informe se genera, es leyendo info de la base de datos directamente.

Bueno si alguien me puede dar una idea se los agradezco mucho. Por lo pronto voy a tratar de encontrar solucion.

Moni.

gabio2:
Pues, yo simplemente uso el método ExportToDisk de mi Reporte (un cristal reports) y le pase los parámetros que me pide (ExportFormatType.PortableDocFormat,"DIRECTORIO\NombreArchivo.PDF").

Pero eso sí tuve que importar (using) esta libreria: CrystalDecisions.Shared, OBVIAMENTE antes tuve que hacer referencia a mi proyecto a la libreria.. clic derecho a References ... agregar referencia ... y busque la de CrystalDecisions.Shared.


--- Código: C# --- using CrystalDecisions.Shared;  
Si no entendiste alguna parte.. me dices... saludos! :D

lugarda:
Gracias por tu respuestas. La tendré en cuenta cuando use Cristal.
Por lo pronto te cuento que yo estoy trabajando con ReportViewer y lo solucioné  usando  reportViewer1.LocalReport.Render , asi:


--- Código: C# --- private void frmReporte_Load(object sender, EventArgs e)        {             DateTime fecha = Convert.ToDateTime("26/11/2010");            List<string> lista = new GenMailNotasNG().notas_cliente(conexionOracle,fecha);            foreach (string nota in lista)            {                this.reportViewer1.ProcessingMode = ProcessingMode.Local;                this.reportViewer1.LocalReport.ReportPath = pathReportes;                try                {                    this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("dsReporte_dtNota",                           new GenMailNotasNG().obtenerNota(conexionOracle,nota)));                }                catch (Exception ex)                {                    MessageBox.Show(ex.Message + "n" + ex.Source, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);                }                finally                {                    this.reportViewer1.RefreshReport();                    byte[] bytes = reportViewer1.LocalReport.Render("PDF", null, out mimeType,                        out encoding, out extension, out streamids, out warnings);                    FileStream fs = new FileStream(@"c:\tmp\"+nota+@".pdf", FileMode.Create);                    fs.Write(bytes, 0, bytes.Length);                    fs.Close();                }            }  

cLaH2L:
Lugarda me podrias explicar tu codigo, ya que tengo que generar lo mismo y no lo comprendo bien!

Navegación

[0] Índice de Mensajes

Ir a la versión completa