private void getControlAbsentismo(int annomes, string sCentros, string sEvaluadores, string sPSN) { svcEXCEL.IsvcEXCELClient osvcEXCEL = null; try { string sExtension = "xls"; string sNombreArchivo = "ControlAbsentismo." + sExtension; DataSet ds = null; if (HttpContext.Current.Cache.Get("CacheControlAbsentismo_" + HttpContext.Current.Session["IDFICEPI_ENTRADA"].ToString()) == null) { ds = SUPER.BLL.Profesional.ObtenerControlAbsentismo(annomes, sCentros, sEvaluadores, sPSN); } else { ds = (DataSet)HttpContext.Current.Cache.Get("CacheControlAbsentismo_" + HttpContext.Current.Session["IDFICEPI_ENTRADA"].ToString()); } osvcEXCEL = new svcEXCEL.IsvcEXCELClient(); ArchivoBinario = osvcEXCEL.getExcelFromDataSet(ds, sExtension); Response.AddHeader("Content-Disposition", "attachment; filename=\"" + sNombreArchivo + "\""); Response.BinaryWrite(ArchivoBinario); if (Response.IsClientConnected) { Response.Flush(); } } catch (FaultException <svcEXCEL.IBOfficeException> cex) { Response.ContentType = "text/HTML"; this.hdnError.Value = "Error: Código:" + cex.Detail.ErrorCode + ". Descripción: " + cex.Detail.Message;// +" " + cex.Detail.InnerMessage; if (cex.InnerException != null) { this.hdnError.Value += ". InnerException: descripción=" + cex.InnerException.Message; } } catch (Exception ex) { Response.ContentType = "text/HTML"; this.hdnError.Value = "Error: " + ex.ToString(); } finally { if (osvcEXCEL != null && osvcEXCEL.State != System.ServiceModel.CommunicationState.Closed) { if (osvcEXCEL.State != System.ServiceModel.CommunicationState.Faulted) { osvcEXCEL.Close(); } else if (osvcEXCEL.State != System.ServiceModel.CommunicationState.Closed) { osvcEXCEL.Abort(); } } } }
private void getConsProyMasivo() { svcEXCEL.IsvcEXCELClient osvcEXCEL = null; try { string sExtension = "xls"; string sNombreArchivo = "ConsumosProyectoMasivo." + sExtension; DataSet ds = (DataSet)HttpContext.Current.Cache.Get("CONSPROYMASIVO_" + Session["IDFICEPI_ENTRADA"].ToString()); osvcEXCEL = new svcEXCEL.IsvcEXCELClient(); ArchivoBinario = osvcEXCEL.getExcelFromDataSet(ds, sExtension); Response.AddHeader("Content-Disposition", "attachment; filename=\"" + sNombreArchivo + "\""); Response.BinaryWrite(ArchivoBinario); ds.Dispose(); HttpContext.Current.Cache.Remove("CONSPROYMASIVO_" + Session["IDFICEPI_ENTRADA"].ToString()); if (Response.IsClientConnected) { Response.Flush(); } } catch (FaultException <svcEXCEL.IBOfficeException> cex) { Response.ContentType = "text/HTML"; this.hdnError.Value = "Error: Código:" + cex.Detail.ErrorCode + ". Descripción: " + cex.Detail.Message;// +" " + cex.Detail.InnerMessage; if (cex.InnerException != null) { this.hdnError.Value += ". InnerException: descripción=" + cex.InnerException.Message; } } catch (Exception ex) { Response.ContentType = "text/HTML"; this.hdnError.Value = "Error: " + ex.ToString(); } finally { HttpContext.Current.Cache.Remove("CONSPROYMASIVO_" + Session["IDFICEPI_ENTRADA"].ToString()); if (osvcEXCEL != null && osvcEXCEL.State != System.ServiceModel.CommunicationState.Closed) { if (osvcEXCEL.State != System.ServiceModel.CommunicationState.Faulted) { osvcEXCEL.Close(); } else if (osvcEXCEL.State != System.ServiceModel.CommunicationState.Closed) { osvcEXCEL.Abort(); } } } }
private void getExcel(DataSet ds) { svcEXCEL.IsvcEXCELClient osvcEXCEL = null; try { string sExtension = ".xls"; string sNombreArchivo = "Consulta_Imputaciones_" + Session["IDFICEPI_IAP"].ToString() + sExtension; osvcEXCEL = new svcEXCEL.IsvcEXCELClient(); ArchivoBinario = osvcEXCEL.getExcelFromDataSet(ds, sExtension); Response.ContentType = "application/xlsx; charset=ISO-8859-1"; Response.AddHeader("Content-Disposition", "attachment; filename=\"" + sNombreArchivo + "\""); Response.AddHeader("content-length", Convert.ToString(ArchivoBinario.Length)); Response.BinaryWrite(ArchivoBinario); if (Response.IsClientConnected) { Response.Flush(); } } catch (FaultException <svcEXCEL.IBOfficeException> cex) { Response.ContentType = "text/HTML"; this.hdnError.Value = "Error: Código:" + cex.Detail.ErrorCode + ". Descripción: " + cex.Detail.Message;// +" " + cex.Detail.InnerMessage; if (cex.InnerException != null) { this.hdnError.Value += ". InnerException: descripción=" + cex.InnerException.Message; } } catch (Exception ex) { Response.ContentType = "text/HTML"; this.hdnError.Value = "Error: " + ex.ToString(); } finally { if (osvcEXCEL != null && osvcEXCEL.State != System.ServiceModel.CommunicationState.Closed) { if (osvcEXCEL.State != System.ServiceModel.CommunicationState.Faulted) { osvcEXCEL.Close(); } else if (osvcEXCEL.State != System.ServiceModel.CommunicationState.Closed) { osvcEXCEL.Abort(); } } } }
private void getConsultaPersonalizada(string sParametros) { svcEXCEL.IsvcEXCELClient osvcEXCEL = null; try { string sExtension = "xls"; string[] aParam = Regex.Split(sParametros, "@#@"); //string sNombreArchivo = SUPER.Capa_Negocio.Utilidades.unescape(aParam[0]) + "_" + DateTime.Now.ToString() + "." + sExtension; string sNombreArchivo = aParam[0] + "-" + DateTime.Now.ToString() + "." + sExtension; string sProdAlm = aParam[1]; string[] aParametros = Regex.Split(aParam[2], "///"); //object[] aObjetos = new object[(sParametros == "") ? 1 : aParametros.Length + 1]; object[] aObjetos = new object[(aParam[2] == "") ? 1 : aParametros.Length + 1]; aObjetos[0] = Utilidades.GetUserActual(); #region Cargo parámetros int v = 1; foreach (string oParametro in aParametros) { if (oParametro == "") { continue; } string[] aDatos = Regex.Split(oParametro, "##"); switch (aDatos[0]) { case "A": aObjetos[v] = int.Parse(aDatos[1]); break; case "M": aObjetos[v] = double.Parse(aDatos[1].Replace(".", ",")); break; case "B": aObjetos[v] = (aDatos[1] == "1") ? true : false; break; default: aObjetos[v] = aDatos[1]; break; } v++; } #endregion DataSet ds = CONSULTAPERSONAL.EjecutarConsultaDS(sProdAlm, aObjetos); osvcEXCEL = new svcEXCEL.IsvcEXCELClient(); ArchivoBinario = osvcEXCEL.getExcelFromDataSet(ds, sExtension); Response.AddHeader("Content-Disposition", "attachment; filename=\"" + Utilidades.CleanFileName(sNombreArchivo) + "\""); Response.BinaryWrite(ArchivoBinario); if (Response.IsClientConnected) { Response.Flush(); } } catch (FaultException <svcEXCEL.IBOfficeException> cex) { Response.ContentType = "text/HTML"; this.hdnError.Value = "Error: Código:" + cex.Detail.ErrorCode + ". Descripción: " + cex.Detail.Message;// +" " + cex.Detail.InnerMessage; if (cex.InnerException != null) { this.hdnError.Value += ". InnerException: descripción=" + cex.InnerException.Message; } } catch (Exception ex) { Response.ContentType = "text/HTML"; this.hdnError.Value = "Error: " + ex.ToString(); } finally { if (osvcEXCEL != null && osvcEXCEL.State != System.ServiceModel.CommunicationState.Closed) { if (osvcEXCEL.State != System.ServiceModel.CommunicationState.Faulted) { osvcEXCEL.Close(); } else if (osvcEXCEL.State != System.ServiceModel.CommunicationState.Closed) { osvcEXCEL.Abort(); } } } }
public static byte[] exportarExcel(List <Dictionary <string, string> > schema, List <Dictionary <string, string> > datos, string filename, string tituloExcel) { try { byte[] bytearr = null; DataTable dtHead = new DataTable(); dtHead.TableName = "HEAD-datos"; DataColumn dtc = new DataColumn("clave"); dtHead.Columns.Add(dtc); dtc = new DataColumn("valor"); dtHead.Columns.Add(dtc); DataRow oRow = dtHead.NewRow(); oRow[0] = "title"; oRow[1] = tituloExcel; dtHead.Rows.InsertAt(oRow, 0); DataTable dtBody = new DataTable(); dtBody.TableName = "BODY-datos"; dtc = null; for (var i = 0; i < schema.Count; i++) { dtc = new DataColumn(schema[i]["data-text"], Type.GetType("System." + schema[i]["data-type"])); dtBody.Columns.Add(dtc); } DataRow oRowFila; for (var j = 0; j < datos.Count; j++) { oRowFila = dtBody.NewRow(); for (var k = 0; k < datos[j].Count; k++) { if (datos[j].Values.ElementAt(k) != null) { switch (schema[k]["data-type"]) { case "Double": oRowFila[k] = Math.Round(double.Parse(datos[j].Values.ElementAt(k), CultureInfo.InvariantCulture), 2); break; case "DateTime": string [] arr = datos[j].Values.ElementAt(k).Split('/'); oRowFila[k] = new DateTime(Convert.ToInt32(arr[2]), Convert.ToInt32(arr[1]), Convert.ToInt32(arr[0])); break; default: oRowFila[k] = datos[j].Values.ElementAt(k); break; } } } dtBody.Rows.Add(oRowFila); } //Si no hay filas devolver null, if (dtBody.Rows.Count == 0) { return(bytearr); } DataSet ds = new DataSet(); ds.Tables.Add(dtHead); ds.Tables.Add(dtBody); //Llamada al ibservioffice para obtener el excel svcEXCEL.IsvcEXCELClient osvcEXCEL = null; try { osvcEXCEL = new svcEXCEL.IsvcEXCELClient(); return(osvcEXCEL.getExcelFromDataSet(ds, filename)); } catch (FaultException <svcEXCEL.IBOfficeException> cex) { throw new Exception(cex.Detail.Message); } catch (Exception ex) { throw ex; } finally { if (osvcEXCEL != null && osvcEXCEL.State != System.ServiceModel.CommunicationState.Closed) { if (osvcEXCEL.State != System.ServiceModel.CommunicationState.Faulted) { osvcEXCEL.Close(); } else { osvcEXCEL.Abort(); } } } } catch (Exception ex) { IB.SUPER.Shared.LogError.LogearError("Error al exportar a excel", ex); throw new Exception(System.Uri.EscapeDataString("Error al exportar a excel")); } }
public byte[] ExportarExcel(string exportid, string origenMenu, string filters) { //El 15/06/2018 María nos pide que quitemos las lineas de cabecera del Excel para facilitar la creación de tablas dinámicas byte[] bytearr = null; DataTable dtBody = null; DataTable dtHead = null; string filename = ""; bool admin = origenMenu == "ADM" ? true : false; Hashtable ht = Shared.Utils.ParseQuerystringFilters(filters); OpenDbConn(); DAL.Exportaciones cExport = new DAL.Exportaciones(cDblib); switch (exportid) { #region Acciones case "acciones": //Obtener datatable de bbdd Models.ExportAccionesFilter o = new Models.ExportAccionesFilter(); if (ht["estado"] != null) { o.estado = ht["estado"].ToString(); } if (ht["itemorigen"] != null) { o.itemorigen = ht["itemorigen"].ToString(); } if (ht["iditemorigen"] != null) { o.iditemorigen = ht["iditemorigen"].ToString(); } if (ht["importeDesde"] != null) { o.importeDesde = ht["importeDesde"].ToString(); } if (ht["importeHasta"] != null) { o.importeHasta = ht["importeHasta"].ToString(); } if (ht["ffinDesde"] != null) { o.ffinDesde = ht["ffinDesde"].ToString(); } if (ht["ffinHasta"] != null) { o.ffinHasta = ht["ffinHasta"].ToString(); } if (ht["promotor"] != null) { o.promotor = ht["promotor"].ToString(); } if (ht["comercial"] != null) { o.comercial = ht["comercial"].ToString(); } if (ht["lideres"] != null) { o.lideres = obtenerListaIds(ht["lideres"].ToString()); } if (ht["clientes"] != null) { o.clientes = obtenerListaIds(ht["clientes"].ToString()); } if (ht["acciones"] != null) { o.acciones = obtenerListaIds(ht["acciones"].ToString()); } if (ht["unidades"] != null) { o.unidades = obtenerListaIds(ht["unidades"].ToString()); } if (ht["areas"] != null) { o.areas = obtenerListaIds(ht["areas"].ToString()); } if (ht["subareas"] != null) { o.subareas = obtenerListaIds(ht["subareas"].ToString()); } dtBody = cExport.Acciones(admin, (int)HttpContext.Current.Session["IDFICEPI_PC_ACTUAL"], o); //Si no hay filas devolver null, if (dtBody.Rows.Count == 0) { return(bytearr); } //dtBody.TableName = "BODY-export"; dtBody.TableName = "Acciones"; //dtHead = ObtenerDatatableHEAD("HEAD-export", "Acciones preventa"); filename = "acciones.xlsx"; break; #endregion #region accionesMiAmbito //case "accionesMiAmbito": // //Obtener datatable de bbdd // Models.ExportAccionesFilter oAV = new Models.ExportAccionesFilter(); // if (ht["estado"] != null) oAV.estado = ht["estado"].ToString(); // //if (ht["itemorigen"] != null) oAV.itemorigen = ht["itemorigen"].ToString(); // //if (ht["iditemorigen"] != null) oAV.iditemorigen = ht["iditemorigen"].ToString(); // if (ht["importeDesde"] != null) oAV.importeDesde = ht["importeDesde"].ToString(); // if (ht["importeHasta"] != null) oAV.importeHasta = ht["importeHasta"].ToString(); // if (ht["ffinDesde"] != null) oAV.ffinDesde = ht["ffinDesde"].ToString(); // if (ht["ffinHasta"] != null) oAV.ffinHasta = ht["ffinHasta"].ToString(); // if (ht["promotor"] != null) oAV.promotor = ht["promotor"].ToString(); // if (ht["comercial"] != null) oAV.comercial = ht["comercial"].ToString(); // if (ht["lideres"] != null) oAV.lideres = obtenerListaIds(ht["lideres"].ToString()); // if (ht["clientes"] != null) oAV.clientes = obtenerListaIds(ht["clientes"].ToString()); // if (ht["acciones"] != null) oAV.acciones = obtenerListaIds(ht["acciones"].ToString()); // if (ht["unidades"] != null) oAV.unidades = obtenerListaIds(ht["unidades"].ToString()); // if (ht["areas"] != null) oAV.areas = obtenerListaIds(ht["areas"].ToString()); // if (ht["subareas"] != null) oAV.subareas = obtenerListaIds(ht["subareas"].ToString()); // dtBody = cExport.AccionesMiVision(admin, (int)HttpContext.Current.Session["IDFICEPI_PC_ACTUAL"], oAV); // //Eliminar las columnas no necesarias // ArrayList arl = new ArrayList(); // foreach (DataColumn c in dtBody.Columns) // { // if (c.ColumnName.ToLower().Trim() != "ta204_idaccionpreventa" // && c.ColumnName.ToLower().Trim() != "tipoAccion" // && c.ColumnName.ToLower().Trim() != "ta206_iditemorigen" // && c.ColumnName.ToLower().Trim() != "importe" && c.ColumnName.ToLower().Trim() != "den_cuenta" // && c.ColumnName.ToLower().Trim() != "promotor" && c.ColumnName.ToLower().Trim() != "comercial" // && c.ColumnName.ToLower().Trim() != "den_unidadcomercial" && c.ColumnName.ToLower().Trim() != "areaPreventa" // && c.ColumnName.ToLower().Trim() != "subareaPreventa" && c.ColumnName.ToLower().Trim() != "lider" // && c.ColumnName.ToLower().Trim() != "estadoorigen" && c.ColumnName.ToLower().Trim() != "ta204_fechacreacion" // && c.ColumnName.ToLower().Trim() != "ta204_fechafinestipulada" && c.ColumnName.ToLower().Trim() != "ta204_fechafinreal" // ) // { // arl.Add(c); // } // } // foreach (DataColumn dc in arl) // { // dtBody.Columns.Remove(dc.ColumnName); // } // //Renombar columnas // dtBody.Columns["ta204_idaccionpreventa"].ColumnName = "Referencia"; // //dtBody.Columns["tipoAccion"].ColumnName = "Acción preventa"; // dtBody.Columns["importe"].ColumnName = "Importe"; // //Si no hay filas devolver null, // if (dtBody.Rows.Count == 0) return bytearr; // dtBody.TableName = "BODY-export"; // dtHead = ObtenerDatatableHEAD("HEAD-export", "Consulta y acceso a las acciones preventa bajo mi ámbito de visión"); // filename = "accionesMiVision.xlsx"; // break; #endregion #region Tareas case "tareas": //Obtener datatable de bbdd Models.ExportTareasFilter p = new Models.ExportTareasFilter(); if (ht["estado"] != null) { p.estado = ht["estado"].ToString(); } if (ht["estado_tarea"] != null) { p.estado_tarea = ht["estado_tarea"].ToString(); } if (ht["itemorigen"] != null) { p.itemorigen = ht["itemorigen"].ToString(); } if (ht["iditemorigen"] != null) { p.iditemorigen = ht["iditemorigen"].ToString(); } if (ht["importeDesde"] != null) { p.importeDesde = ht["importeDesde"].ToString(); } if (ht["importeHasta"] != null) { p.importeHasta = ht["importeHasta"].ToString(); } if (ht["ffinDesde"] != null) { p.ffinDesde = ht["ffinDesde"].ToString(); } if (ht["ffinHasta"] != null) { p.ffinHasta = ht["ffinHasta"].ToString(); } if (ht["ffinDesde_tarea"] != null) { p.ffinDesde_tarea = ht["ffinDesde_tarea"].ToString(); } if (ht["ffinHasta_tarea"] != null) { p.ffinHasta_tarea = ht["ffinHasta_tarea"].ToString(); } if (ht["promotor"] != null) { p.promotor = ht["promotor"].ToString(); } if (ht["comercial"] != null) { p.comercial = ht["comercial"].ToString(); } if (ht["lideres"] != null) { p.lideres = obtenerListaIds(ht["lideres"].ToString()); } if (ht["clientes"] != null) { p.clientes = obtenerListaIds(ht["clientes"].ToString()); } if (ht["acciones"] != null) { p.acciones = obtenerListaIds(ht["acciones"].ToString()); } if (ht["unidades"] != null) { p.unidades = obtenerListaIds(ht["unidades"].ToString()); } if (ht["areas"] != null) { p.areas = obtenerListaIds(ht["areas"].ToString()); } if (ht["subareas"] != null) { p.subareas = obtenerListaIds(ht["subareas"].ToString()); } dtBody = cExport.Tareas(admin, (int)HttpContext.Current.Session["IDFICEPI_PC_ACTUAL"], p); //Si no hay filas devolver null, if (dtBody.Rows.Count == 0) { return(bytearr); } //dtBody.TableName = "BODY-export"; dtBody.TableName = "Tareas"; //dtHead = ObtenerDatatableHEAD("HEAD-export", "Tareas preventa"); filename = "tareas.xlsx"; break; #endregion #region Acciones y Tareas case "accionestareas": //Obtener datatable de bbdd Models.ExportTareasFilter p2 = new Models.ExportTareasFilter(); if (ht["estado"] != null) { p2.estado = ht["estado"].ToString(); } if (ht["estado_tarea"] != null) { p2.estado_tarea = ht["estado_tarea"].ToString(); } if (ht["itemorigen"] != null) { p2.itemorigen = ht["itemorigen"].ToString(); } if (ht["iditemorigen"] != null) { p2.iditemorigen = ht["iditemorigen"].ToString(); } if (ht["importeDesde"] != null) { p2.importeDesde = ht["importeDesde"].ToString(); } if (ht["importeHasta"] != null) { p2.importeHasta = ht["importeHasta"].ToString(); } if (ht["ffinDesde"] != null) { p2.ffinDesde = ht["ffinDesde"].ToString(); } if (ht["ffinHasta"] != null) { p2.ffinHasta = ht["ffinHasta"].ToString(); } if (ht["ffinDesde_tarea"] != null) { p2.ffinDesde_tarea = ht["ffinDesde_tarea"].ToString(); } if (ht["ffinHasta_tarea"] != null) { p2.ffinHasta_tarea = ht["ffinHasta_tarea"].ToString(); } if (ht["promotor"] != null) { p2.promotor = ht["promotor"].ToString(); } if (ht["comercial"] != null) { p2.comercial = ht["comercial"].ToString(); } if (ht["lideres"] != null) { p2.lideres = obtenerListaIds(ht["lideres"].ToString()); } if (ht["clientes"] != null) { p2.clientes = obtenerListaIds(ht["clientes"].ToString()); } if (ht["acciones"] != null) { p2.acciones = obtenerListaIds(ht["acciones"].ToString()); } if (ht["unidades"] != null) { p2.unidades = obtenerListaIds(ht["unidades"].ToString()); } if (ht["areas"] != null) { p2.areas = obtenerListaIds(ht["areas"].ToString()); } if (ht["subareas"] != null) { p2.subareas = obtenerListaIds(ht["subareas"].ToString()); } dtBody = cExport.AccionesTareas(admin, (int)HttpContext.Current.Session["IDFICEPI_PC_ACTUAL"], p2); //Si no hay filas devolver null, if (dtBody.Rows.Count == 0) { return(bytearr); } //dtBody.TableName = "BODY-export"; dtBody.TableName = "AccionesTareas"; //dtHead = ObtenerDatatableHEAD("HEAD-export", "Acciones y tareas preventa"); filename = "accionestareas.xlsx"; break; #endregion #region cargatrabajo case "cargatrabajo": //Obtener datatable de bbdd Models.ExportCargaTrabajoFilter q = new Models.ExportCargaTrabajoFilter(); if (ht["estado"] != null) { q.estado = ht["estado"].ToString(); } if (ht["estado_tarea"] != null) { q.estado_tarea = ht["estado_tarea"].ToString(); } if (ht["ffinDesde"] != null) { q.ffinDesde = ht["ffinDesde"].ToString(); } if (ht["ffinHasta"] != null) { q.ffinHasta = ht["ffinHasta"].ToString(); } if (ht["ffinDesde_tarea"] != null) { q.ffinDesde_tarea = ht["ffinDesde_tarea"].ToString(); } if (ht["ffinHasta_tarea"] != null) { q.ffinHasta_tarea = ht["ffinHasta_tarea"].ToString(); } if (ht["lideres"] != null) { q.lideres = obtenerListaIds(ht["lideres"].ToString()); } if (ht["unidades"] != null) { q.unidades = obtenerListaIds(ht["unidades"].ToString()); } if (ht["areas"] != null) { q.areas = obtenerListaIds(ht["areas"].ToString()); } if (ht["subareas"] != null) { q.subareas = obtenerListaIds(ht["subareas"].ToString()); } dtBody = cExport.CargaTrabajo(admin, (int)HttpContext.Current.Session["IDFICEPI_PC_ACTUAL"], q); //Si no hay filas devolver null, if (dtBody.Rows.Count == 0) { return(bytearr); } //dtBody.TableName = "BODY-export"; dtBody.TableName = "CargaTrabajo"; //dtHead = ObtenerDatatableHEAD("HEAD-export", "Carga de trabajo"); filename = "cargatrabajo.xlsx"; break; #endregion default: return(bytearr); } DataSet ds = new DataSet(); //ds.Tables.Add(dtHead); ds.Tables.Add(dtBody); //Llamada al ibservioffice para obtener el excel svcEXCEL.IsvcEXCELClient osvcEXCEL = null; try { osvcEXCEL = new svcEXCEL.IsvcEXCELClient(); return(osvcEXCEL.getExcelFromDataSet(ds, filename)); } catch (FaultException <svcEXCEL.IBOfficeException> cex) { throw new Exception(cex.Detail.Message); } catch (Exception ex) { throw ex; } finally { if (osvcEXCEL != null && osvcEXCEL.State != System.ServiceModel.CommunicationState.Closed) { if (osvcEXCEL.State != System.ServiceModel.CommunicationState.Faulted) { osvcEXCEL.Close(); } else { osvcEXCEL.Abort(); } } } }
protected void Page_Load(object sender, EventArgs e) { string sExtension = ".xlsx"; string sFilename = ""; byte[] oExcel = null; string pantalla = Request.QueryString["pantalla"]; DataSet ds = new DataSet(); Response.ClearContent(); Response.ClearHeaders(); Response.Buffer = true; svcEXCEL.IsvcEXCELClient osvcEXCEL = new svcEXCEL.IsvcEXCELClient(); try { switch (pantalla) { //Exportación del equipo desde la pantalla de desglose de rol case "desgloserol": //recuperar parametros del querystring int idficepi = int.Parse(Request.QueryString["idficepi"]); int parentesco = int.Parse(Request.QueryString["parentesco"]); string idficepitext = Request.QueryString["idficepitext"]; string parentescotext = Request.QueryString["parentescotext"]; int numprofesionales = int.Parse(Request.QueryString["numprofesionales"]); sFilename = "desglose por rol" + sExtension; IB.Progress.BLL.DesgloseRol dRol = null; try { //Datatable de cabecera DataTable dtH = new DataTable("HEAD-Excel"); DataColumn dtc = new DataColumn("clave"); dtH.Columns.Add(dtc); dtc = new DataColumn("valor"); dtH.Columns.Add(dtc); DataRow oRow = dtH.NewRow(); oRow[0] = "title"; oRow[1] = "Profesionales por rol"; dtH.Rows.Add(oRow); oRow = dtH.NewRow(); oRow[0] = "Evaluador"; oRow[1] = idficepitext; dtH.Rows.Add(oRow); oRow = dtH.NewRow(); oRow[0] = "Nivel de dependencia"; oRow[1] = parentescotext; dtH.Rows.Add(oRow); oRow = dtH.NewRow(); oRow[0] = "Total profesionales"; oRow[1] = numprofesionales; dtH.Rows.Add(oRow); //Datatable de cuerpo List <IB.Progress.Models.DesgloseRol> desgloseRol = null; dRol = new IB.Progress.BLL.DesgloseRol(); desgloseRol = dRol.catalogoDesgloseRol(idficepi, parentesco); dRol.Dispose(); //eliminar las filas con profesional = ""; desgloseRol = (from o in desgloseRol where o.Profesional.Length > 0 select o).ToList <IB.Progress.Models.DesgloseRol>(); //convertir la lista a datatable DataTable dtbody = desgloseRol.CopyGenericToDataTable <IB.Progress.Models.DesgloseRol>(); dtbody.TableName = "BODY-Excel"; //Eliminar las columnas no necesarias ArrayList arl = new ArrayList(); foreach (DataColumn c in dtbody.Columns) { if (c.ColumnName.ToLower().Trim() != "desrol" && c.ColumnName.ToLower().Trim() != "profesional") { arl.Add(c); } } foreach (DataColumn dc in arl) { dtbody.Columns.Remove(dc.ColumnName); } //renombar columnas dtbody.Columns["desrol"].ColumnName = "Rol"; dtbody.Columns["profesional"].ColumnName = "Profesional"; //reordenar columnas dtbody.Columns["Rol"].SetOrdinal(0); dtbody.Columns["Profesional"].SetOrdinal(1); //Agregar al dataset ds.Tables.Add(dtH); ds.Tables.Add(dtbody); //exportar oExcel = osvcEXCEL.getExcelFromDataSet(ds, sFilename); } catch (Exception ex) { throw ex; } finally { if (dRol != null) { dRol.Dispose(); } } break; case "solicitudesaprobadas": //recuperar parametros del querystring int idficepiSolicitudesaprobadas = int.Parse(Request.QueryString["idficepi"]); IB.Progress.BLL.TramitacionCambioRol dTramitacion = null; try { //Datatable de cabecera DataTable dtH = new DataTable("HEAD-Excel"); DataColumn dtc = new DataColumn("clave"); dtH.Columns.Add(dtc); dtc = new DataColumn("valor"); dtH.Columns.Add(dtc); DataRow oRow = dtH.NewRow(); oRow[0] = "title"; oRow[1] = "Solicitudes aprobadas"; dtH.Rows.Add(oRow); //Datatable de cuerpo List <IB.Progress.Models.TramitacionCambioRol> tramit = null; dTramitacion = new IB.Progress.BLL.TramitacionCambioRol(); tramit = dTramitacion.getSolicitudesSegunEstado(Convert.ToChar("P"), idficepiSolicitudesaprobadas); dTramitacion.Dispose(); ////convertir la lista a datatable DataTable dtbody = tramit.CopyGenericToDataTable <IB.Progress.Models.TramitacionCambioRol>(); dtbody.TableName = "BODY-Excel"; //Eliminar las columnas no necesarias ArrayList arl = new ArrayList(); foreach (DataColumn c in dtbody.Columns) { if (c.ColumnName.ToLower().Trim() != "nombre_interesado" && c.ColumnName.ToLower().Trim() != "nombre_promotor" && c.ColumnName.ToLower().Trim() != "t940_desrolactual" && c.ColumnName.ToLower().Trim() != "t940_desrolpropuesto" && c.ColumnName.ToLower().Trim() != "t940_motivopropuesto" && c.ColumnName.ToLower().Trim() != "t940_fechaproposicion" && c.ColumnName.ToLower().Trim() != "aprobador" && c.ColumnName.ToLower().Trim() != "t940_fecharesolucion") { arl.Add(c); } } foreach (DataColumn dc in arl) { dtbody.Columns.Remove(dc.ColumnName); } dtbody.Columns["nombre_interesado"].ColumnName = "Profesional"; dtbody.Columns["nombre_promotor"].ColumnName = "Evaluador"; dtbody.Columns["t940_desrolActual"].ColumnName = "Rol actual"; dtbody.Columns["t940_desrolPropuesto"].ColumnName = "Rol propuesto"; dtbody.Columns["t940_motivopropuesto"].ColumnName = "Motivo"; dtbody.Columns["t940_fechaproposicion"].ColumnName = "Proposición"; dtbody.Columns["aprobador"].ColumnName = "Aprobador"; dtbody.Columns["t940_fecharesolucion"].ColumnName = "Aprobación"; //Reordenar columnas dtbody.Columns["Profesional"].SetOrdinal(0); dtbody.Columns["Evaluador"].SetOrdinal(1); dtbody.Columns["Rol actual"].SetOrdinal(2); dtbody.Columns["Rol propuesto"].SetOrdinal(3); dtbody.Columns["Motivo"].SetOrdinal(4); dtbody.Columns["Proposición"].SetOrdinal(5); dtbody.Columns["Aprobador"].SetOrdinal(6); dtbody.Columns["Aprobación"].SetOrdinal(7); //Agregar al dataset ds.Tables.Add(dtH); ds.Tables.Add(dtbody); //exportar oExcel = osvcEXCEL.getExcelFromDataSet(ds, sFilename); } catch (Exception ex) { throw ex; } finally { if (dTramitacion != null) { dTramitacion.Dispose(); } } break; case "formaciondemandada": //recuperar parametros del querystring int idficepiFormacionDemandada = int.Parse(Request.QueryString["idficepi"]); int desde = int.Parse(Request.QueryString["desde"]); int hasta = int.Parse(Request.QueryString["hasta"]); string selmesinitext = Request.QueryString["mesinitext"]; string selanoinitext = Request.QueryString["anoinitext"]; string selmesfintext = Request.QueryString["mesfintext"]; string selanofintext = Request.QueryString["anofintext"]; int numevaluadosFormacion = int.Parse(Request.QueryString["numevaluaciones"]); Nullable <short> colectivo = short.Parse(Request.QueryString["colectivo"]); string colectivotext = Request.QueryString["colectivotext"]; sFilename = "Formación demandada" + sExtension; IB.Progress.BLL.FormacionDemandada dFormacion = null; try { //Datatable de cabecera DataTable dtH = new DataTable("HEAD-Excel"); DataColumn dtc = new DataColumn("clave"); dtH.Columns.Add(dtc); dtc = new DataColumn("valor"); dtH.Columns.Add(dtc); DataRow oRow = dtH.NewRow(); oRow[0] = "title"; oRow[1] = "Formación demandada"; dtH.Rows.Add(oRow); oRow = dtH.NewRow(); oRow[0] = "Desde"; oRow[1] = selmesinitext + " " + selanoinitext; dtH.Rows.Add(oRow); oRow = dtH.NewRow(); oRow[0] = "Hasta"; oRow[1] = selmesfintext + " " + selanofintext; dtH.Rows.Add(oRow); oRow = dtH.NewRow(); oRow[0] = "Colectivo"; oRow[1] = colectivotext; dtH.Rows.Add(oRow); oRow = dtH.NewRow(); oRow[0] = "Total evaluaciones"; oRow[1] = numevaluadosFormacion; dtH.Rows.Add(oRow); //Datatable de cuerpo IB.Progress.Models.FormacionDemandada formacionDemandada = null; dFormacion = new IB.Progress.BLL.FormacionDemandada(); formacionDemandada = dFormacion.catFormacionDemandada(idficepiFormacionDemandada, desde, hasta, colectivo); dFormacion.Dispose(); ////convertir la lista a datatable DataTable dtbody = formacionDemandada.FormacionDemandadaS1.CopyGenericToDataTable <IB.Progress.Models.FormacionDemandadaSelect1>(); dtbody.TableName = "BODY-Excel"; ////Eliminar las columnas no necesarias dtbody.Columns.Remove("t930_idvaloracion"); dtbody.Columns.Remove("idformulario"); //Agregar al dataset ds.Tables.Add(dtH); ds.Tables.Add(dtbody); //exportar oExcel = osvcEXCEL.getExcelFromDataSet(ds, sFilename); } catch (Exception ex) { throw ex; } finally{ if (dFormacion != null) { dFormacion.Dispose(); } } break; case "arboldependencias": //recuperar parametros del querystring int idficepiArbol = int.Parse(Request.QueryString["idficepi"]); string idficepitextArbol = Request.QueryString["idficepitext"]; int idficepievaluador = int.Parse(Request.QueryString["idficepievaluador"]); string evaluadortext = Request.QueryString["evaluadortext"]; string rolevaluador = Request.QueryString["rolevaluador"]; int numevaluadosArbol = int.Parse(Request.QueryString["numevaluados"]); sFilename = "Árbol de dependencias" + sExtension; IB.Progress.BLL.ArbolDependencias dArbol = null; try { //Datatable de cabecera DataTable dtH = new DataTable("HEAD-Excel"); DataColumn dtc = new DataColumn("clave"); dtH.Columns.Add(dtc); dtc = new DataColumn("valor"); dtH.Columns.Add(dtc); DataRow oRow = dtH.NewRow(); oRow[0] = "title"; oRow[1] = "Árbol de dependencias"; dtH.Rows.Add(oRow); oRow = dtH.NewRow(); oRow[0] = "Evaluador/a"; oRow[1] = evaluadortext; dtH.Rows.Add(oRow); oRow = dtH.NewRow(); oRow[0] = "Rol del evaluador/a"; oRow[1] = rolevaluador; dtH.Rows.Add(oRow); oRow = dtH.NewRow(); oRow[0] = "Total evaluados/as"; oRow[1] = numevaluadosArbol; dtH.Rows.Add(oRow); //Datatable cuerpo List <IB.Progress.Models.ArbolDependencias> arbolDependencias = null; dArbol = new IB.Progress.BLL.ArbolDependencias(); arbolDependencias = dArbol.catalogoArbolDependencias(idficepievaluador); dArbol.Dispose(); //eliminar las filas con profesional = ""; arbolDependencias = (from o in arbolDependencias select o).ToList <IB.Progress.Models.ArbolDependencias>(); //convertir la lista a datatable DataTable dtbody = arbolDependencias.CopyGenericToDataTable <IB.Progress.Models.ArbolDependencias>(); dtbody.TableName = "BODY-Excel"; //Eliminar las columnas no necesarias ArrayList arl = new ArrayList(); foreach (DataColumn c in dtbody.Columns) { if (c.ColumnName.ToLower().Trim() != "evaluado" && c.ColumnName.ToLower().Trim() != "roldelevaluado") { arl.Add(c); } } foreach (DataColumn dc in arl) { dtbody.Columns.Remove(dc.ColumnName); } //dtbody.Rows.Remove([dtbody.Rows[0])]; dtbody.Rows[0].Delete(); //renombar columnas dtbody.Columns["evaluado"].ColumnName = "Evaluado/a"; dtbody.Columns["roldelevaluado"].ColumnName = "Rol del evaluado/a"; //Agregar al dataset ds.Tables.Add(dtH); ds.Tables.Add(dtbody); //exportar oExcel = osvcEXCEL.getExcelFromDataSet(ds, sFilename); } catch (Exception ex) { throw ex; } finally { if (dArbol != null) { dArbol.Dispose(); } } break; case "arboldependenciasALL": //recuperar parametros del querystring int idficepiArbolALL = int.Parse(Request.QueryString["idficepi"]); string idficepitextArbolALL = Request.QueryString["idficepitext"]; int idficepievaluadorALL = int.Parse(Request.QueryString["idficepievaluador"]); string evaluadortextALL = Request.QueryString["evaluadortext"]; string rolevaluadorALL = Request.QueryString["rolevaluador"]; int numevaluadosArbolALL = int.Parse(Request.QueryString["numevaluados"]); sFilename = "Árbol de dependencias" + sExtension; IB.Progress.BLL.ArbolDependencias dArbolALL = null; try { //Datatable de cabecera DataTable dtH = new DataTable("HEAD-Excel"); DataColumn dtc = new DataColumn("clave"); dtH.Columns.Add(dtc); dtc = new DataColumn("valor"); dtH.Columns.Add(dtc); DataRow oRow = dtH.NewRow(); oRow[0] = "title"; oRow[1] = "Árbol de dependencias"; dtH.Rows.Add(oRow); //Datatable cuerpo List <IB.Progress.Models.ArbolDependencias> arbolDependencias = null; dArbol = new IB.Progress.BLL.ArbolDependencias(); arbolDependencias = dArbol.catalogoArbolDependenciasALL(idficepievaluadorALL); dArbol.Dispose(); //eliminar las filas con profesional = ""; //arbolDependencias = (from o in arbolDependencias // select o).ToList<IB.Progress.Models.ArbolDependencias>(); //convertir la lista a datatable DataTable dtbody = arbolDependencias.CopyGenericToDataTable <IB.Progress.Models.ArbolDependencias>(); dtbody.TableName = "BODY-Excel"; //Eliminar las columnas no necesarias ArrayList arl = new ArrayList(); foreach (DataColumn c in dtbody.Columns) { if (c.ColumnName.ToLower().Trim() != "evaluado" && c.ColumnName.ToLower().Trim() != "roldelevaluado" && c.ColumnName.ToLower().Trim() != "evaluador" && c.ColumnName.ToLower().Trim() != "roldelevaluador") { arl.Add(c); } } foreach (DataColumn dc in arl) { dtbody.Columns.Remove(dc.ColumnName); } //renombar columnas dtbody.Columns["evaluado"].ColumnName = "Evaluado/a"; dtbody.Columns["evaluador"].ColumnName = "Evaluador/a"; dtbody.Columns["Roldelevaluador"].ColumnName = "Rol del evaluador/a"; dtbody.Columns["Roldelevaluado"].ColumnName = "Rol del evaluado/a"; //reordenar columnas dtbody.Columns["Evaluador/a"].SetOrdinal(0); dtbody.Columns["Rol del evaluador/a"].SetOrdinal(1); dtbody.Columns["Evaluado/a"].SetOrdinal(2); dtbody.Columns["Rol del evaluado/a"].SetOrdinal(3); //Agregar al dataset ds.Tables.Add(dtH); ds.Tables.Add(dtbody); //exportar oExcel = osvcEXCEL.getExcelFromDataSet(ds, sFilename); } catch (Exception ex) { throw ex; } finally { if (dArbolALL != null) { dArbolALL.Dispose(); } } break; } } catch (Exception ex) { this.hdnError.Value = "Error al exportar a excel.<br /><br />: " + ex.Message; } finally { if (osvcEXCEL != null && osvcEXCEL.State != System.ServiceModel.CommunicationState.Closed) { if (osvcEXCEL.State != System.ServiceModel.CommunicationState.Faulted) { osvcEXCEL.Close(); } else { osvcEXCEL.Abort(); } } } //Devolver el excel if (Response.IsClientConnected && hdnError.Value == "") { Response.AddHeader("Content-Disposition", "attachment; filename=\"" + sFilename + "\""); Response.BinaryWrite(oExcel); Response.ContentType = "application/vnd.ms-excel"; //Para que funcione en Chrome if (System.Web.HttpContext.Current.Request.Browser.Browser.ToString() == "Chrome") { Response.AddHeader("Content-Length", "999999999999"); } Response.Flush(); Response.Close(); Response.End(); System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest(); } }