/// <summary> /// Método para /// </summary> /// <param name="infoReportes"></param> public bool ModificarParametrosReporte(Models.Reportes infoReportes) { try { string dataJson = JsonConvert.SerializeObject(infoReportes); System.IO.File.WriteAllText(path_JsonParametros, dataJson, Encoding.Default); }catch (Exception e) { Logs.Error(string.Format("{0}: {1}", "No se han podido registrar los parámetros", e.Message)); return(false); } return(true); }
public ActionResult ModificarReporte(Models.Reportes infoReportes) { string mensajesReportes = string.Empty; try { if (infoReportes.Imagen != null) { string pathAux = System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Images/LogoReporte/LogoNuevo.jpg"); if (System.IO.File.Exists(pathAux)) { System.IO.File.Delete(pathAux); } string pathAux2 = System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Images/LogoReporte/LogoNuevo.png"); if (System.IO.File.Exists(pathAux2)) { System.IO.File.Delete(pathAux2); } string pic = Path.GetFileName(infoReportes.Imagen.FileName); string[] aux = pic.Split('.'); string ext = aux[1]; string path = Path.Combine(System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Images/LogoReporte"), pic); infoReportes.Imagen.SaveAs(path); infoReportes.Imagen.InputStream.Flush(); infoReportes.Imagen.InputStream.Dispose(); string pathNuevoNombre = System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Images/LogoReporte/LogoNuevo." + ext); System.IO.File.Move(System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Images/LogoReporte/" + infoReportes.Imagen.FileName), pathNuevoNombre); } infoReportes.Imagen = null; if (ModificarParametrosReporte(infoReportes)) { mensajesReportes = string.Format("Los parámetros del Reporte han sido modificados exitosamente."); TempData["Mensaje"] = mensajesReportes; Logs.Info(mensajesReportes); } else { mensajesReportes = string.Format("No se ha podido modificar los parámetros del Reporte."); TempData["MensajeError"] = mensajesReportes; Logs.Error(mensajesReportes); } } catch (Exception e) { Logs.Error(string.Format("{0}: {1}", mensajesReportes, e.Message)); } return(RedirectToAction("ParametrosReportes", "Reportes")); }
/// <summary> /// Método para insertar el encabezado en la primera página del Reporte. /// </summary> /// <param name="documentoReporte">Documento actual en el cual se está generando el PDF.</param> /// <param name="writerReporte">Writer actual con el cual se está generando el PDF.</param> public void GenerarEncabezadoReporte(Document documentoReporte, PdfWriter writerReporte) { string nombreImage = string.Empty; string imagenHTML = string.Empty; string pathAux = System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Images/LogoReporte/LogoNuevo.jpg"); string pathAux2 = System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Images/LogoReporte/LogoNuevo.png"); if (File.Exists(pathAux)) { nombreImage = "LogoNuevo.jpg"; imagenHTML = "<img src='{0}' style='text-align:center;width:90%;'></img>"; } else if (File.Exists(pathAux2)) { nombreImage = "LogoNuevo.png"; imagenHTML = "<img src='{0}' style='text-align:center;width:100%;'></img>"; } else { nombreImage = "LogoUPS.png"; imagenHTML = "<img src='{0}' height=65 width=225 style='text-align:center;'></img>"; } ReportesController objReportesCont = new ReportesController(); Models.Reportes infoParametros = objReportesCont.ObtenerParametrosReporteJSON(); if (infoParametros.TituloReporte == "Reporte de Activos de TI del Data Center y Laboratorios del ICC") { infoParametros.TituloReporte = "Reporte de Activos de TI <br/> del Data Center y Laboratorios del ICC"; } var encabezadoHtml = string.Format(@"<!DOCTYPE html><html><head></head><body><table align='center' style='width:80%;'><tr><th rowspan='2'><p style='text-align:center'>" + imagenHTML + "</p></th><td rowspan='1'><p style='text-align:center'><b>{1} <br/>{2}</b></p></td></tr><tr><td><p style='text-align:center'><b>{3}</b></p></td></tr></table></body></html>", System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Images/LogoReporte/" + nombreImage), infoParametros.TituloCarrera, infoParametros.TituloSedeCampus, infoParametros.TituloReporte); var encabezadoCss = @"body{font-family:Calibri,Candara,Segoe,Segoe UI,Optima,Arial,sans-serif}table,th,td{border:1px solid black;border-collapse:collapse}"; using (var msCss = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(encabezadoCss))) { using (MemoryStream msHtml = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(encabezadoHtml))) { XMLWorkerHelper.GetInstance().ParseXHtml(writerReporte, documentoReporte, msHtml, msCss); } msCss.Close(); } }
/// <summary> /// Obtener obtener los parámetros del reporte del JSON /// </summary> /// <returns></returns> public Models.Reportes ObtenerParametrosReporteJSON() { Models.Reportes items = new Models.Reportes(); using (StreamReader r = new StreamReader(path_JsonParametros, Encoding.Default, true)) { string json = r.ReadToEnd(); items = JsonConvert.DeserializeObject <Models.Reportes>(json); r.Dispose(); } string pathAux = System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Images/LogoReporte/LogoNuevo.jpg"); string pathAux2 = System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Images/LogoReporte/LogoNuevo.png"); if (System.IO.File.Exists(pathAux)) { items.ImagenJPG = true; } else if (System.IO.File.Exists(pathAux2)) { items.ImagenPNG = true; } return(items); }
/// <summary> /// Método para generar el reporte en excel. /// </summary> /// <param name="infoTable">Datatable con la información que se desplegará en el Excel</param> /// <param name="tituloReporte">Título que se mostrará en el Excel</param> /// <returns></returns> public MemoryStream GenerarReporteExcel(DataTable infoTable, string tituloReporte, string labFiltro, string firmaUsuario) { ReportesController objReportesCont = new ReportesController(); Models.Reportes infoParametros = objReportesCont.ObtenerParametrosReporteJSON(); MemoryStream memStream = new MemoryStream(); //Cargar la plantilla para reportes en Excel var fileinfo = new FileInfo(path_Plantilla); using (ExcelPackage pck = new ExcelPackage(fileinfo)) { if (labFiltro == "Mostrar Todos") { labFiltro = "Todos"; } else if (labFiltro == "") { labFiltro = "-"; } string nombreImage = string.Empty; string pathAux = System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Images/LogoReporte/LogoNuevo.jpg"); string pathAux2 = System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Images/LogoReporte/LogoNuevo.png"); if (File.Exists(pathAux)) { nombreImage = "LogoNuevo.jpg"; } else if (File.Exists(pathAux2)) { nombreImage = "LogoNuevo.png"; } else { nombreImage = "LogoUPS.png"; } //Carga de la primera hoja de trabajo del Excel ExcelWorksheet ws = pck.Workbook.Worksheets[1]; ws.Column(1).Width = 25; Image img = Image.FromFile(System.Web.Hosting.HostingEnvironment.MapPath(string.Format("~/Content/Images/LogoReporte/{0}", nombreImage))); ExcelPicture pic = ws.Drawings.AddPicture("Logo", img); pic.From.Column = 0; pic.From.Row = 0; pic.SetSize(170, 60); pic.From.ColumnOff = 2 * 9525; pic.From.RowOff = 2 * 9525; ws.Cells["A8"].LoadFromDataTable(infoTable, true); //Titulos Organización ConfigCell(1, 2, 1, infoTable.Columns.Count, ws, infoTable.Columns.Count, string.Format("{0} {1}", infoParametros.TituloCarrera, infoParametros.TituloSedeCampus), true, true, Color.White, Color.Black, ExcelHorizontalAlignment.Center); ConfigCell(2, 2, 2, infoTable.Columns.Count, ws, infoTable.Columns.Count, infoParametros.TituloSistema, true, true, Color.White, Color.Black, ExcelHorizontalAlignment.Center); ConfigCell(3, 2, 3, infoTable.Columns.Count, ws, infoTable.Columns.Count, infoParametros.TituloReporte, true, true, Color.White, Color.Black, ExcelHorizontalAlignment.Center); //ws.Cells[1, 1, 7, infoTable.Columns.Count].AutoFitColumns(); //Carga de Parámetros //Campus //ConfigCell(4,2,4, infoTable.Columns.Count,ws, infoTable.Columns.Count, "Quito, campus sur.",true,false,Color.White, Color.Black, ExcelHorizontalAlignment.Left); //Fecha ConfigCell(4, 2, 4, infoTable.Columns.Count, ws, infoTable.Columns.Count, DateTime.Now.ToLongDateString(), true, false, Color.White, Color.Black, ExcelHorizontalAlignment.Left); //ws.Cells[4, 2, 4, infoTable.Columns.Count].AutoFitColumns(); //Laboratorio ConfigCell(5, 2, 5, infoTable.Columns.Count, ws, infoTable.Columns.Count, labFiltro, true, false, Color.White, Color.Black, ExcelHorizontalAlignment.Left); //N° Equipos ConfigCell(6, 2, 6, infoTable.Columns.Count, ws, infoTable.Columns.Count, infoTable.Rows.Count + "", true, false, Color.White, Color.Black, ExcelHorizontalAlignment.Left); //Título del la lista del reporte ConfigCell(7, 1, 7, infoTable.Columns.Count, ws, infoTable.Columns.Count, "LISTADO DE " + tituloReporte.ToUpper(), true, true, ColorTranslator.FromHtml("#3c5a77"), ColorTranslator.FromHtml("#E7E7E7"), ExcelHorizontalAlignment.Center); //Encabezado de la tabla ConfigCell(8, 1, 8, infoTable.Columns.Count, ws, infoTable.Columns.Count, null, false, true, ColorTranslator.FromHtml("#3c5a77"), ColorTranslator.FromHtml("#E7E7E7"), ExcelHorizontalAlignment.Center); //Datos ConfigCell(9, 1, 8 + infoTable.Rows.Count, infoTable.Columns.Count, ws, infoTable.Columns.Count, null, false, false, Color.White, Color.Black, ExcelHorizontalAlignment.Left); //Elaborado por ConfigCell(9 + infoTable.Rows.Count, 1, 9 + infoTable.Rows.Count, 1, ws, 1, "ELABORADO POR: ", false, true, ColorTranslator.FromHtml("#ededed"), ColorTranslator.FromHtml("#23527c"), ExcelHorizontalAlignment.Left); ConfigCell(9 + infoTable.Rows.Count, 2, 9 + infoTable.Rows.Count, infoTable.Columns.Count, ws, infoTable.Columns.Count, Regex.Replace(firmaUsuario, @"(^\w)|(\s\w)", m => m.Value.ToUpper()), true, false, ColorTranslator.FromHtml("#ededed"), ColorTranslator.FromHtml("#23527c"), ExcelHorizontalAlignment.Left); //Autoajustar las celdas para los datos ws.Cells[7, 2, 7 + infoTable.Rows.Count, infoTable.Columns.Count].AutoFitColumns(); ws.Cells["A8"].Style.HorizontalAlignment = ExcelHorizontalAlignment.Left; //Transformar el archivo a Bytes memStream = new MemoryStream(pck.GetAsByteArray()); pck.Dispose(); ws.Dispose(); img.Dispose(); pic.Dispose(); } return(memStream); }