none
Exportar PDF en Crystal reports RRS feed

  • Pregunta

  •         public void exportarInforme(string ruta)
            {
                int dia, mes, año;
                fecha = DateTime.Now;
    
                string fechaInforme = Convert.ToString(fecha.ToShortDateString());
                fechaInforme = fechaInforme.Replace('/', '-');
    
                dia = fecha.Day;
                mes = fecha.Month;
                año = fecha.Year;
    
                DateTime f_ini = new DateTime(año, mes, dia, 06, 00, 00);
                DateTime f_fin = f_ini.AddDays(1);
    
                string fechaI = f_ini.ToString("dd/MM/yyyy HH:mm:ss");
                string fechaF = f_fin.ToString("dd/MM/yyyy HH:mm:ss");
    
                string query = "SELECT DISTINCT CodAveria, NomInstalacion, NomAFO, NomTecnologia, CodProblema, HoraInicio, HoraFin, TiempoArreglo FROM Averias WHERE HoraInicio Between '" + fechaI + "' AND '" + fechaF + "' ORDER BY CodAveria";
                OleDbDataAdapter adapter = new OleDbDataAdapter(query, frmInicio.conexion);
                // Crear Objeto de Dataset
                DataTable dt = new DataTable();
    
                try
                {
                    adapter.Fill(dt);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
    
                dt.Columns.Add("FechaActual", typeof(String));
    
                foreach (DataRow fila in dt.Rows)
                {
                    fila["FechaActual"] = fechaInforme;
                }
    
                // Crear Objeto del visor de reportes
                frmInformeSimple frmIS;
                // Inicializar el visor de reportes y mandarle la tabla con los datos
                frmIS = new frmInformeSimple(dt);
                frmIS.Show();
                frmIS.Visible = false;
    
                frmIS.WindowState = FormWindowState.Minimized;
                frmIS.Show();
                frmIS.Visible = false;
                frmIS.CrystalReportViewer1.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, ruta);
            }

    Tengo este codigo en una clase que salta cada dia a una cierta hora ( A traves de Quartz.net ). Ahora lo que quiero es que cada vez que salte el temporizador diario, me genere un informe y automaticamente lo exporte a pdf y lo guarde en un sitio adecuado. El informe me lo genera perfectamente el problema esta en esta linea : frmIS.CrystalReportViewer1.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, ruta); CrystalReportViewer1 me da un error y nose como arreglar. En la aplicacion puedo generar el informe a traves de un boton y funciona pero con esto quiero que ademas del boton todos los dias genere automaticamente. El codigo que tengo en el frm del informe es este:

     public partial class frmInformeSimple : Form
        {
            public frmInformeSimple(DataTable dt)
            {
                InitializeComponent();
    
                //Crear Objeto REPORTE
                InformeSimpleDiseño ISD = new InformeSimpleDiseño();
    
                //Asignar datos al reporte
                ISD.SetDataSource(dt);
    
                //Asignar reporte creado al visor de reportes
                this.crystalReportViewer1.ReportSource = ISD;
            }
        }

    martes, 26 de abril de 2016 10:30

Respuestas

  • //Crear Objeto REPORTE
                InformeSimpleDiseño ISD = new InformeSimpleDiseño();
    
                //Asignar datos al reporte
                ISD.SetDataSource(dt);
    
                //Asignar reporte creado al visor de reportes
                this.crystalReportViewer1.ReportSource = ISD;
    
                if (exportar == true)
                {
                    string nombreInforme = string.Format("{0:yyyy-MM-dd}.pdf", DateTime.Now.AddDays(-1));
                    string exportarRuta = Path.Combine(ruta, nombreInforme);
                    try
                    {
                        //Exportamos el informe a PDF y lo guardamos en la ruta adecuada.
                        crystalReportViewer1.ReportSource = ISD;
                        crystalReportViewer1.Refresh();
                        ISD.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, exportarRuta);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }

    Asi exporta perfectamente los informes a pdf

    Un saludo, Tximas

    • Marcado como respuesta tximas jueves, 28 de abril de 2016 8:11
    jueves, 28 de abril de 2016 8:10