public ActionResult VentasPorDiaSemana(DateTime fecha_inicio, DateTime fecha_fin) { List <ReporteDiaSemana> pedidos = new List <ReporteDiaSemana>(); ReporteDiaSemana pedidoTemporal; try { List <string> pedidosDiaSemana = bl.consultarCantidadPedidosPorDiasSemana(fecha_inicio, fecha_fin); for (int i = 0; i < pedidosDiaSemana.Count() - 1; i += 2) { pedidoTemporal = new ReporteDiaSemana(); pedidoTemporal.FechaInicio = fecha_inicio; ViewBag.desde = "desde"; ViewBag.hasta = "hasta"; ViewBag.fechainicio = fecha_inicio.ToString("yyyy-MM-dd"); pedidoTemporal.FechaFin = fecha_fin; ViewBag.fechafin = fecha_fin.ToString("yyyy-MM-dd"); pedidoTemporal.Dia = pedidosDiaSemana.ElementAt(i); pedidoTemporal.Cantidad = pedidosDiaSemana.ElementAt(i + 1); pedidos.Add(pedidoTemporal); } } catch (Exception e) { ModelState.AddModelError("", "Seleccione las fechas para generar el reporte"); } return(View(pedidos)); }
public ActionResult ReporteDiaSemana(string id, DateTime fechai, DateTime fechaf) { LocalReport lr = new LocalReport(); string path = Path.Combine(Server.MapPath("~/Reportes"), "VentasPorDiaSemana.rdlc"); if (System.IO.File.Exists(path)) { lr.ReportPath = path; } else { return(View("Index")); } List <string> pedidosDiaSemana = bl.consultarCantidadPedidosPorDiasSemana(fechai, fechaf); List <ReporteDiaSemana> pedidos = new List <ReporteDiaSemana>(); ReporteDiaSemana pedidoTemporal; for (int i = 0; i < pedidosDiaSemana.Count() - 1; i += 2) { pedidoTemporal = new ReporteDiaSemana(); pedidoTemporal.FechaInicio = fechai.Date; pedidoTemporal.FechaFin = fechaf.Date; pedidoTemporal.Dia = pedidosDiaSemana.ElementAt(i); pedidoTemporal.Cantidad = pedidosDiaSemana.ElementAt(i + 1); pedidos.Add(pedidoTemporal); } ReportDataSource rd = new ReportDataSource("VentasPorSemanaDataSet", pedidos); lr.DataSources.Add(rd); string reportType = id; string mimeType; string encoding; string fileNameExtension; string deviceInfo = "<DeviceInfo>" + " <OutputFormat>" + id + "</OutputFormat>" + " <PageWidth>8.5in</PageWidth>" + " <PageHeight>11in</PageHeight>" + " <MarginTop>0.5in</MarginTop>" + " <MarginLeft>1in</MarginLeft>" + " <MarginRight>1in</MarginRight>" + " <MarginBottom>0.5in</MarginBottom>" + "</DeviceInfo>"; Warning[] warnings; string[] streams; byte[] renderedBytes; renderedBytes = lr.Render( reportType, deviceInfo, out mimeType, out encoding, out fileNameExtension, out streams, out warnings); return(File(renderedBytes, mimeType)); }