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); }
/// <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); } }