Esempio n. 1
0
        public Reporteador MostrarReporte(Reporteador reporte)
        {
            try
            {
                if (this.StiReport.IsRendered)
                {
                    this.StiReport.ShowWithRibbonGUI(true);
                    return(this);
                }
                this.StiReport.Render(false);

                if (this.StiReport.IsRendered)
                {
                    this.StiReport.ShowWithRibbonGUI(true);
                }
            }
            catch (Exception ex)
            {
                Log.Logger.Error(ex.Message);
            }
            return(this);
        }
Esempio n. 2
0
        /// <summary>
        /// Guarda un reporte mrt en formato excel y lo abre al finalizar
        /// </summary>
        /// <param name="carpeta">Carpeta sin slash final</param>
        /// <param name="nombre">Nombre sin extension</param>
        /// <param name="report">Reporte (es indiferente si esta compilado y renderizado o no)</param>
        private string GuardaReporteExcel(string carpeta, string nombre, Reporteador report, bool EspacioDeTrabajo = false)
        {
            try
            {
                if (!this.StiReport.IsRendered)
                {
                    //this.StiReport.Compile();
                    this.StiReport.Render(false);
                }
                nombre = nombre.Replace(".mrt", "");
                //this.StiReport.Design();
                string ruta = null;
                if (!Directory.Exists(carpeta))
                {
                    Directory.CreateDirectory(carpeta);
                }
                FileInfo file        = new FileInfo($"{carpeta + "\\" + nombre}.xls");
                int      i           = 1;
                string   alternativo = nombre;
                while (file.Exists)
                {
                    nombre = alternativo;
                    try
                    {
                        file = new FileInfo($"{carpeta + "\\" + nombre}.xls");
                        if (file.Exists)
                        {
                            file.Delete();
                        }
                        else
                        {
                            nombre = alternativo;
                            break;
                        }
                    }
                    catch (Exception ex)
                    {
                        Log.Logger.Error(ex, $"Eliminando el reporte:{file.FullName}");
                        alternativo += i.ToString();
                        i++;
                    }
                    finally
                    {
                        try
                        {
                            Directory.GetFiles(carpeta, $"*{nombre}*.xls",
                                               SearchOption.TopDirectoryOnly).ToList().ForEach(File.Delete);
                        }
                        catch (Exception ex)
                        {
                            Log.Logger.Error(ex, $"Eliminando reportes anteriores:{file.FullName}");
                        }
                    }
                }
                try
                {
                    StiExcelExportService service = new Stimulsoft.Report.Export.StiExcelExportService();
                    ruta = $"{carpeta + "\\" + nombre}.xls";
                    service.ExportExcel(report.GetStiReportObject(), ruta);
                }
                catch (Exception ex)
                {
                    Log.Logger.Error(ex, "Al crear un reporte:" + nombre);
                }
                if (!EspacioDeTrabajo)
                {
                    try
                    {
                        Process.Start(ruta);
                        ruta = null;
                    }
                    catch (Exception ex)
                    {
                        Log.Logger.Error(ex, "?");
                    }
                }

                return(ruta);
            }
            catch (Exception ex)
            {
                Log.Logger.Error(ex, "Al guardar el reporte:" + nombre);
                return(null);
            }
        }