public IEnumerable <NacimientoItem> GetNacimientos(NacimientoFilter filter) { try { connection = new SqlServerConnection(); var parametros = new Dictionary <string, object> { { "@fechaDesde", filter.fechaDesde }, { "@fechaHasta", filter.fechaHasta }, { "@codigoCampo", filter.codigoCampo }, { "@periodo", filter.periodo } }; if (filter.numCaravanaMadre != 0) { parametros.Add("@numCaravanaMadre", filter.numCaravanaMadre.ToString()); } if (filter.numCaravanaPadre != 0) { parametros.Add("@numCaravanaPadre", filter.numCaravanaPadre.ToString()); } var lista = connection.GetArray <NacimientoItem>("spObtenerListaNacimientos", parametros, System.Data.CommandType.StoredProcedure); return(lista.ToList()); } catch (Exception ex) { throw; } finally { connection.Close(); connection = null; } }
public Documento NacimientosExportarExcel(NacimientoFilter filter) { SLExcelData data = new SLExcelData(); try { data.HeadersFiltro = new List <string>(); data.HeadersFiltro.Add("Caravana Madre"); data.HeadersFiltro.Add("Caravana Padre"); data.HeadersFiltro.Add("Fecha desde"); data.HeadersFiltro.Add("Fecha hasta"); List <string> rowFiltro = new List <string>(); if (filter.numCaravanaMadre != 0) { rowFiltro.Add(filter.numCaravanaMadre.ToString()); } else { rowFiltro.Add("Sin datos"); } if (filter.numCaravanaPadre != 0) { rowFiltro.Add(filter.numCaravanaPadre.ToString()); } else { rowFiltro.Add("Sin datos"); } if (filter.fechaDesde != null) { rowFiltro.Add(filter.fechaDesde); } else { rowFiltro.Add("Sin datos"); } if (filter.fechaHasta != null) { rowFiltro.Add(filter.fechaHasta); } else { rowFiltro.Add("Sin datos"); } data.DataRowsFiltro = new List <List <string> >(); data.DataRowsFiltro.Add(rowFiltro); var lista = GetNacimientos(filter); data.Headers.Add("Caravana Madre"); data.Headers.Add("Caravana Padre"); data.Headers.Add("Fecha Nacimiento"); foreach (var item in lista) { List <string> row = new List <string>() { item.numCaravanaMadre, item.numCaravanaPadre, item.fechaNacimiento }; data.DataRows.Add(row); } var archivo = StaticFunctions.GenerateExcel(data, "Nacimientos", filter.campo, filter.usuario, filter.periodo); return(new Documento() { nombre = archivo }); } catch (Exception ex) { throw ex; } finally { } }
public Documento NacimientosExportarPDF(NacimientoFilter filter) { FileStream fs; Document doc = null; PdfWriter writer; try { doc = new Document(); // Verifico el directorio string filePath = System.IO.Path.Combine(HttpRuntime.AppDomainAppPath, "Archivos\\"); if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } var fecha = DateTime.Now.ToString("dd-MM-yyyyHHmm"); // Nombre del archivo string fileName = string.Format("{0}-{1}-{2}.pdf", "Nacimientos", filter.campo, fecha); // Generación del PDF fs = new FileStream(System.IO.Path.Combine(filePath, fileName), FileMode.Create, FileAccess.Write, FileShare.None); writer = PdfWriter.GetInstance(doc, fs); doc.Open(); string pathImg1 = System.IO.Path.Combine(HttpRuntime.AppDomainAppPath, "Archivos\\logo_farmix.jpg"); Image image1; if (Image.GetInstance(pathImg1) != null) { image1 = Image.GetInstance(pathImg1); image1.ScalePercent(24F); image1.Alignment = Element.ALIGN_CENTER; doc.Add(image1); } //añadimos linea negra abajo de las imagenes para separar. doc.Add(new Paragraph(new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(2.0F, 100.0F, BaseColor.BLACK, Element.ALIGN_LEFT, 1)))); doc.Add(new Paragraph(" ")); //Inicio datos var lista = GetNacimientos(filter); Font fuente1 = new Font(FontFamily.TIMES_ROMAN, 12.0f, Font.BOLD, BaseColor.BLACK); Font fuente2 = new Font(FontFamily.TIMES_ROMAN, 14.0f, Font.BOLD, BaseColor.BLACK); Rectangle rect = PageSize.LETTER; List <IElement> ie; float pageWidth = rect.Width; string html = ""; fecha = DateTime.Now.ToString("dd-MM-yyyy HH:mm"); html = @" <html><head></head><body> <table> <tr><td><b>Nacimientos</b></td></tr> <tr><td>Campo: <b>" + filter.campo + @"</b></td></tr> <tr><td>Generado por: <b>" + filter.usuario + @"</b></td></tr> <tr><td>Fecha: <b>" + fecha + @"</b></td></tr> <tr><td>Período: <b>" + filter.periodo + @"</b></td></tr> </table> </body></html>"; ie = HTMLWorker.ParseToList(new StringReader(html), null); foreach (IElement element in ie) { PdfPTable table1 = element as PdfPTable; if (table1 != null) { table1.SetWidthPercentage(new float[] { (float)1 * pageWidth }, rect); } doc.Add(element); } doc.Add(new Paragraph(" ")); if (lista.Count() > 0) { string caravanaMadre, caravanaPadre; if (filter.numCaravanaMadre == 0) { caravanaMadre = "Sin filtro"; } else { caravanaMadre = filter.numCaravanaMadre.ToString(); } if (filter.numCaravanaPadre == 0) { caravanaPadre = "Sin filtro"; } else { caravanaPadre = filter.numCaravanaPadre.ToString(); } html = @" <html><head></head><body> <table> <tr><td><b>Filtro Aplicado</b></td><td></td><td></td><td></td></tr> </table> <table border='1'> <thead> <tr> <th>Caravana Madre</th> <th>Caravana Padre</th> <th>Fecha Desde</th> <th>Fecha Hasta</th> </tr> </thead> <tbody> <tr><td>" + caravanaMadre + @"</td><td>" + caravanaPadre + @"</td><td>" + (filter.fechaDesde == null ? "Sin filtro" : filter.fechaDesde) + @"</td><td>" + (filter.fechaHasta == null ? "Sin filtro" : filter.fechaHasta) + @"</td><td></tr> </tbody></table></body></html>"; ie = HTMLWorker.ParseToList(new StringReader(html), null); foreach (IElement element in ie) { PdfPTable table = element as PdfPTable; if (table != null) { table.SetWidthPercentage(new float[] { (float).2 * pageWidth, (float).2 * pageWidth, (float).2 * pageWidth, (float).2 * pageWidth }, rect); } doc.Add(element); } doc.Add(new Paragraph(" ")); html = @" <html><head></head><body> <table border='1'> <thead> <tr> <th>Caravana Madre</th> <th>Caravana Padre</th> <th>Fecha Nacimiento</th> </tr> </thead> <tbody>"; foreach (var item in lista) { html += @"<tr><td>" + (item.numCaravanaMadre == "" ? "Sin datos" : item.numCaravanaMadre) + @"</td><td>" + (item.numCaravanaPadre == "" ? "Sin datos" : item.numCaravanaPadre) + @"</td><td>" + item.fechaNacimiento + @"</td></tr>"; } html += @"</tbody></table> </body></html> "; ie = HTMLWorker.ParseToList(new StringReader(html), null); foreach (IElement element in ie) { PdfPTable table = element as PdfPTable; if (table != null) { table.SetWidthPercentage(new float[] { (float).2 * pageWidth, (float).2 * pageWidth, (float).2 * pageWidth }, rect); } doc.Add(element); } } doc.Close(); return(new Documento() { nombre = fileName }); } catch (Exception ex) { doc.Close(); throw ex; } finally { fs = null; doc = null; writer = null; } }