protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { _TipoReporte = (this.Request["rpt"] != null ? ReportesController.GetTipoReporte(this.Request["rpt"].ToString().ToLower()) : TipoReportePublicacion.Autor); HiddenTipoReporte.Value = ((int)_TipoReporte).ToString(); ViewState["rpt"] = _TipoReporte; _Paginacion = new Paginacion() { FilasPorPagina = GridViewResultado.PageSize, PaginaActual = 1, IsNavigating = false }; ViewState["busquedaHabilitada"] = false; ViewState["isSortDescending"] = false; ViewState["paginacion"] = _Paginacion; //CargarTodos(string.Empty, false); ShowMenusBusqueda(_TipoReporte); } else { _TipoReporte = (ViewState["rpt"] != null ? (TipoReportePublicacion)ViewState["rpt"] : TipoReportePublicacion.Autor); HiddenTipoReporte.Value = ((int)_TipoReporte).ToString(); _Titulos = ViewState["titulos"] as List <TituloLibreriaView>; _Paginacion = ViewState["paginacion"] as Paginacion; //ShowMenusBusqueda(_TipoReporte); if (Request.Params["__EVENTTARGET"].Contains("TextBoxPaginaActual")) { string id = Request.Params["__EVENTARGUMENT"]; PaginaSelected_Changed(id); } } this.ButtonBuscar.Attributes.Add("style", "z-index:1;"); }
public static TipoReportePublicacion GetTipoReporte(string tipoReporte) { TipoReportePublicacion tipo = TipoReportePublicacion.Autor; tipoReporte = (string.IsNullOrEmpty(tipoReporte) ? string.Empty : tipoReporte.ToLower()); switch (tipoReporte) { case "year": tipo = TipoReportePublicacion.Anio; break; case "autor": tipo = TipoReportePublicacion.Autor; break; case "tipotexto": tipo = TipoReportePublicacion.TipoTexto; break; case "traductor": tipo = TipoReportePublicacion.Traductor; break; case "edicion": tipo = TipoReportePublicacion.Edicion; break; case "editorial": tipo = TipoReportePublicacion.Editorial; break; default: tipo = TipoReportePublicacion.Autor; break; } return(tipo); }
public static string GetCampoOrdenacionReporte(TipoReportePublicacion tipoReporte) { string campoOrdenacion = "autor"; switch (tipoReporte) { case TipoReportePublicacion.Anio: campoOrdenacion = "año"; break; case TipoReportePublicacion.Autor: campoOrdenacion = "autor"; break; case TipoReportePublicacion.TipoTexto: campoOrdenacion = "titulo"; break; case TipoReportePublicacion.Traductor: campoOrdenacion = "año"; break; case TipoReportePublicacion.Edicion: campoOrdenacion = "edicion"; break; case TipoReportePublicacion.Editorial: campoOrdenacion = "editorial"; break; default: campoOrdenacion = "autor"; break; } return(campoOrdenacion); }
public static string GetNombreTipoReporte(TipoReportePublicacion tipoReporte) { string nombreReporte = string.Empty; switch (tipoReporte) { case TipoReportePublicacion.Anio: nombreReporte = "Pulicaciones por Año"; break; case TipoReportePublicacion.Autor: nombreReporte = "Pulicaciones por Autor"; break; case TipoReportePublicacion.TipoTexto: nombreReporte = "Pulicaciones por Tipo Texto"; break; case TipoReportePublicacion.Traductor: nombreReporte = "Pulicaciones por Traductor"; break; case TipoReportePublicacion.Edicion: nombreReporte = "Pulicaciones por Edición"; break; case TipoReportePublicacion.Editorial: nombreReporte = "Pulicaciones por Editorial"; break; default: nombreReporte = "SIN NOMBRE"; break; } return(nombreReporte); }
private void ShowMenusBusqueda(TipoReportePublicacion tipoReporte) { switch (tipoReporte) { case TipoReportePublicacion.Anio: this.LabelTipoReporte.Text = "Publicaciones por año"; ////this.DivBotonBusqueda.Attributes.Add("style", "float:left; padding-left:30px;"); this.DivGroupBusqueda.Attributes.Add("class", "input-group busqueda-custom"); this.DivBotonBusqueda.Attributes.Add("class", "input-group-btn busqueda-custom"); this.DivRangosBusqueda.Visible = true; this.TextBoxBusqueda.Visible = false; this.DivContenedorTipoTexto.Visible = false; this.DivContenedorFuncion.Visible = false; this.Title = "Publicaciones por año"; break; case TipoReportePublicacion.Autor: LabelTipoReporte.Text = "Publicaciones por Autor"; Title = "Publicaciones por autor"; this.DivRangosBusqueda.Visible = false; this.TextBoxBusqueda.Visible = true; this.DivContenedorTipoTexto.Visible = false; this.DivContenedorFuncion.Visible = false; break; case TipoReportePublicacion.TipoTexto: LabelTipoReporte.Text = "Publicaciones por tipo texto"; Title = "Publicaciones por tipo texto"; ////this.DivBotonBusqueda.Attributes.Add("style", "float:left; padding-left:30px;"); this.DivGroupBusqueda.Attributes.Add("class", "input-group busqueda-custom"); this.DivBotonBusqueda.Attributes.Add("class", "input-group-btn busqueda-custom"); this.DivRangosBusqueda.Visible = false; this.TextBoxBusqueda.Visible = false; this.DivContenedorTipoTexto.Visible = true; this.DivContenedorFuncion.Visible = false; break; case TipoReportePublicacion.Traductor: LabelTipoReporte.Text = "Publicaciones por traductor"; Title = "Publicaciones por traductor"; this.TextBoxBusqueda.CssClass = "form-control clase"; //this.TextBoxBusqueda.CssClass = "clase2"; //this.TextBoxBusqueda.Attributes.Add("style", "float:left;"); this.DivGroupBusqueda.Attributes.Add("class", "input-group busqueda-custom"); this.DivBotonBusqueda.Attributes.Add("class", "input-group-btn busqueda-custom"); this.DivRangosBusqueda.Visible = false; this.TextBoxBusqueda.Visible = true; this.DivContenedorTipoTexto.Visible = false; this.DivContenedorFuncion.Visible = true; break; case TipoReportePublicacion.Edicion: LabelTipoReporte.Text = "Publicaciones por edicion"; Title = "Publicaciones por edicion"; this.DivRangosBusqueda.Visible = false; this.TextBoxBusqueda.Visible = true; this.DivContenedorTipoTexto.Visible = false; this.DivContenedorFuncion.Visible = false; break; case TipoReportePublicacion.Editorial: LabelTipoReporte.Text = "Publicaciones por editorial"; Title = "Publicaciones por editorial"; this.DivRangosBusqueda.Visible = false; this.TextBoxBusqueda.Visible = true; this.DivContenedorTipoTexto.Visible = false; this.DivContenedorFuncion.Visible = false; break; default: LabelTipoReporte.Text = "Publicaciones por Autor"; Title = "Publicaciones por autor"; this.DivRangosBusqueda.Visible = false; this.TextBoxBusqueda.Visible = true; this.DivContenedorTipoTexto.Visible = false; this.DivContenedorFuncion.Visible = false; break; } }
public List <TituloLibreriaView> ReportePublicacionesPor(TipoReportePublicacion tipoReporte, string campoBusqueda, string rangoinicio, string rangoFin, string nombreFuncion, bool?isNovedad, string ordenColumna, bool isOrderDescending, ref bool isLoadedAll) { List <TituloLibreriaDetail> lista = null; string campoOrdenacion = (string.IsNullOrEmpty(ordenColumna) ? ReportesController.GetCampoOrdenacionReporte(tipoReporte): ordenColumna); nombreFuncion = (string.IsNullOrEmpty(nombreFuncion) ? string.Empty : nombreFuncion.ToLower()); try { if ((string.IsNullOrEmpty(campoBusqueda) & (tipoReporte != TipoReportePublicacion.Anio & tipoReporte != TipoReportePublicacion.Traductor)) || (string.IsNullOrEmpty(rangoinicio) & string.IsNullOrEmpty(rangoFin) & tipoReporte == TipoReportePublicacion.Anio)) { lista = titulosBd.SelectReporteBy(null, null, null, null, null, null, null, null, isNovedad, campoOrdenacion, isOrderDescending); isLoadedAll = true; } else { isLoadedAll = false; switch (tipoReporte) { case TipoReportePublicacion.Anio: int intDummy = -1; int?anioInicio = null; int?anioFin = null; Int32.TryParse(rangoinicio, out intDummy); if (intDummy == -1) { anioInicio = new int?(intDummy); } else { anioInicio = (intDummy == 0 ? null : new int?(intDummy)); } intDummy = -1; Int32.TryParse(rangoFin, out intDummy); if (intDummy == -1) { anioFin = new int?(intDummy); } else { anioFin = (intDummy == 0 ? null : new int?(intDummy)); } lista = titulosBd.SelectReporteBy(anioInicio, anioFin, null, null, null, null, null, null, isNovedad, campoOrdenacion, isOrderDescending); break; case TipoReportePublicacion.Autor: lista = titulosBd.SelectReporteBy(null, null, campoBusqueda, null, null, null, null, null, isNovedad, campoOrdenacion, isOrderDescending); break; case TipoReportePublicacion.TipoTexto: lista = titulosBd.SelectReporteBy(null, null, null, campoBusqueda, null, null, null, null, isNovedad, campoOrdenacion, isOrderDescending); break; case TipoReportePublicacion.Traductor: if (string.IsNullOrEmpty(nombreFuncion)) { lista = titulosBd.SelectReporteBy(null, null, null, null, null, campoBusqueda, null, null, isNovedad, campoOrdenacion, isOrderDescending); } else { FuncionesController funcDb = new FuncionesController(); Funcion func = funcDb.CargarPorId(nombreFuncion); if (func != null) { lista = titulosBd.SelectReporteBy(null, null, null, null, func.IdFuncion, campoBusqueda, null, null, isNovedad, campoOrdenacion, isOrderDescending); } } break; case TipoReportePublicacion.Editorial: lista = titulosBd.SelectReporteBy(null, null, null, null, null, null, campoBusqueda, null, isNovedad, campoOrdenacion, isOrderDescending); break; case TipoReportePublicacion.Edicion: int numero = 0; Int32.TryParse(campoBusqueda, out numero); int?edicion = (numero <= 0 ? null: new int?(numero)); lista = titulosBd.SelectReporteBy(null, null, null, null, null, null, null, edicion, isNovedad, campoOrdenacion, isOrderDescending); break; default: lista = null; break; } } titulosBd.CloseConnection(); return(LibreriaController.ResultadosTitulosGroupBy(lista, campoOrdenacion, isOrderDescending)); } catch (Exception ex) { throw ex; } }
public bool GenerateExcel(TipoReportePublicacion tipoReporte, ref MemoryStream streamReturn, System.Drawing.Image imagen, List <TituloLibreriaView> listaDatos, ref string mensajeRetorno) { DateTime fechaActual = DateTime.Now; int rowActual = 5; int initialRow = rowActual; mensajeRetorno = string.Empty; bool retorno = false; try { using (var xlsPackage = new ExcelPackage()) { ExcelWorksheet worksheet = xlsPackage.Workbook.Worksheets.Add("Publicaciones "); // Accediendo a las celdas. Al parecer el acceso a las celdas es a partir del indice = 1 => (1,1), no (0,0) worksheet.Cells.Style.Font.Size = 10; // (1, 3) worksheet.Cells[1, 1].Value = "Catálogo " + GetNombreTipoReporte(tipoReporte); // (2, 3) worksheet.Cells[2, 1].Value = "Fecha: " + fechaActual.ToString("dd/MM/yyyy"); // ' IMAGEN - MERGE // Dim imagenExcel As EPPlus.Drawing.ExcelPicture = worksheet.Drawings.AddPicture("Image", imagen) // imagenExcel.SetSize(imagen.Width / 1.5, imagen.Height / 1.5) // ' Aparentemente, aquí si se puede asignar las columnas 0 y filas 0 // imagenExcel.From.Column = 0 // imagenExcel.From.Row = 0 // imagenExcel.To.Column = 2 // imagenExcel.To.Row = 2 // ' Asignando un Merge a un rango (FromRow, FromCol, ToRow, ToCol) worksheet.Cells[1, 1, 1, 3].Merge = true; worksheet.Cells[2, 1, 2, 3].Merge = true; // Estilo a la cabecera del Titulo Reporte using (var rangeTitle = worksheet.Cells[1, 1, 2, 3]) { rangeTitle.Style.Fill.PatternType = ExcelFillStyle.None; rangeTitle.Style.Font.Color.SetColor(colorFondoNegro); rangeTitle.Style.Font.Size = 10; rangeTitle.Style.Font.Bold = true; } // Cabeceras de la tabla AddCellXLSHeader(worksheet, rowActual); if (listaDatos != null && listaDatos.Count > 0) { string nombre = string.Empty; foreach (TituloLibreriaView item in listaDatos) { worksheet.Cells[rowActual, 1].Value = item.Titulo; worksheet.Cells[rowActual, 2].Value = item.TituloOriginal; int isbns = 1; int responsables = 1; if (item.Autor != null) { nombre = item.Autor.NombreEspanol; //if (!string.IsNullOrEmpty(item.Autor.NombreLatin)) //{ // nombre = nombre + "(" + item.Autor.NombreLatin + ")"; //} //else if (!string.IsNullOrEmpty(item.Autor.NombreGriego)) //{ // nombre = nombre + "(" + item.Autor.NombreGriego + ")"; //} } else { nombre = string.Empty; } worksheet.Cells[rowActual, 3].Value = nombre; worksheet.Cells[rowActual, 4].Value = item.AnioPublicacion; string cadenaResp = string.Empty; if (item.DetalleResponsables != null && item.DetalleResponsables.Count > 0) { var detalle = item.DetalleResponsables[0]; if (detalle.Responsables != null && detalle.Responsables.Count > 0) { responsables = detalle.Responsables.Count; for (int i = 0; i < detalle.Responsables.Count; i++) { cadenaResp = cadenaResp + string.Format("{0} ({1}) ", detalle.Responsables[i].NombreCompletoResponsable, detalle.Responsables[i].TipoFuncion) + "\n"; } worksheet.Cells[rowActual, 5].Value = cadenaResp; worksheet.Cells[rowActual, 5].Style.WrapText = true; } } worksheet.Cells[rowActual, 6].Value = (item.Editor != null ? item.Editor.Nombre : string.Empty); worksheet.Cells[rowActual, 7].Value = item.Edicion; worksheet.Cells[rowActual, 8].Value = item.NumeroEdicion; worksheet.Cells[rowActual, 9].Value = item.NumeroReimpresion; worksheet.Cells[rowActual, 10].Value = (item.Ciudad != null ? item.Ciudad.Descripcion : string.Empty); string cadenaIsbn = string.Empty; if (item.DetalleIsbn != null && item.DetalleIsbn.Count > 0) { for (int i = 0; i < item.DetalleIsbn.Count; i++) { string edicion = (item.DetalleIsbn[i].Edicion > 0) ? ", " + item.DetalleIsbn[i].Edicion + "a." + " ed." : ""; string reedicion = (item.DetalleIsbn[i].Reedicion > 0) ? ", " + item.DetalleIsbn[i].Reedicion + "a." + " reed." : ""; string reimp = (item.DetalleIsbn[i].Reimpresion > 0) ? ", " + item.DetalleIsbn[i].Reimpresion + "a." + " reimpr." : ""; string ediciones = edicion + reedicion + reimp; if (item.DetalleIsbn[i].IdDescripcion > 0) { cadenaIsbn += item.DetalleIsbn[i].ClaveIsbn + " (" + item.DetalleIsbn[i].DescripcionVersion + ediciones + ")" + "\n"; } else { cadenaIsbn += item.DetalleIsbn[i].ClaveIsbn + (ediciones.Length > 0 ? "(" + ediciones + ")" : "") + "\n"; } } isbns = item.DetalleIsbn.Count; worksheet.Cells[rowActual, 11].Value = cadenaIsbn; worksheet.Cells[rowActual, 11].Style.WrapText = true; } worksheet.Cells[rowActual, 12].Value = item.Medidas; worksheet.Cells[rowActual, 13].Value = item.Paginas; worksheet.Cells[rowActual, 14].Value = item.Observaciones; //string.Format("{0:dd/MM/yyyy}", item.FechaAlta); worksheet.Cells[rowActual, 15].Value = item.Secundarias; if (item.Serie != null) { nombre = (string.IsNullOrEmpty(item.Serie.NombreLatin) ? item.Serie.NombreLatin : item.Serie.NombreGriego); } else { nombre = string.Empty; } worksheet.Cells[rowActual, 16].Value = nombre; worksheet.Cells[rowActual, 17].Value = item.Serie500; worksheet.Cells[rowActual, 18].Value = item.Tema; worksheet.Cells[rowActual, 19].Value = item.Colofon; worksheet.Cells[rowActual, 20].Value = item.Cualidades; worksheet.Cells[rowActual, 21].Value = item.Contenido; worksheet.Cells[rowActual, 22].Value = item.UffYL; worksheet.Cells[rowActual, 23].Value = item.UiiFL; worksheet.Cells[rowActual, 24].Value = (item.IsNovedad? "SI":"NO"); for (int i = 1; i < 25; i++) { SetStyleCellXLS(worksheet.Cells[rowActual, i], rowActual); } int maxValue = Math.Max(isbns, responsables); worksheet.Row(rowActual).Height = 18.0 * maxValue; rowActual = rowActual + 1; } } else { for (int i = 1; i < 25; i++) { worksheet.Cells[rowActual, i].Value = "EMPTY"; } } worksheet.Column(1).Width = 35; worksheet.Column(2).Width = 35; worksheet.Column(3).Width = 35; worksheet.Column(4).Width = 10; worksheet.Column(5).Width = 35; worksheet.Column(6).Width = 35; worksheet.Column(7).Width = 20; worksheet.Column(8).Width = 20; worksheet.Column(9).Width = 20; worksheet.Column(10).Width = 20; worksheet.Column(11).Width = 23; worksheet.Column(12).Width = 20; worksheet.Column(13).Width = 20; worksheet.Column(14).Width = 20; worksheet.Column(15).Width = 20; worksheet.Column(16).Width = 20; worksheet.Column(17).Width = 20; worksheet.Column(18).Width = 35; worksheet.Column(19).Width = 35; worksheet.Column(20).Width = 35; worksheet.Column(21).Width = 35; worksheet.Column(22).Width = 20; worksheet.Column(23).Width = 20; worksheet.Column(24).Width = 10; //worksheet.Cells.AutoFitColumns(); xlsPackage.Workbook.Properties.Title = GetNombreTipoReporte(tipoReporte); xlsPackage.Workbook.Properties.Author = "Coordinación de Humanidades"; xlsPackage.Workbook.Properties.Company = "Universidad Nacional Autónoma de México"; xlsPackage.Stream.Flush(); // No debe guardarse, ,debido a que se usará para leer los bytes y escribirlos en el Stream de Response // xlsPackage.Save() streamReturn = new MemoryStream(); byte[] bytes = xlsPackage.GetAsByteArray(); streamReturn.Write(bytes, 0, bytes.Length); // No es necesario reiniciar la posicion // streamReturn.Position = 0 xlsPackage.Stream.Close(); mensajeRetorno = "Se ha generado el documento solicitado."; } retorno = true; mensajeRetorno = "Archivo generado"; } catch (Exception ex) { streamReturn = null; mensajeRetorno = ex.Message; mensajeRetorno = mensajeRetorno + @":\n\r" + ex.StackTrace; retorno = false; } return(retorno); }