public ActionResult ReporteCiudad(string id, DateTime fechai, DateTime fechaf) { LocalReport lr = new LocalReport(); string fileName = string.Concat("VentasPorCiudad.pdf"); string path = Path.Combine(Server.MapPath("~/Reportes"), "VentasPorCiudad.rdlc"); if (System.IO.File.Exists(path)) { lr.ReportPath = path; } else { return View("Index"); } List<string> pedidosCiudad = bl.consultarCantidadPedidosPorCiudad(fechai, fechaf); List<ReporteCiudad> pedidos = new List<ReporteCiudad>(); ReporteCiudad pedidoTemporal; for (int i = 0; i < pedidosCiudad.Count() - 1; i += 2) { pedidoTemporal = new ReporteCiudad(); pedidoTemporal.FechaInicio = fechai.Date; pedidoTemporal.FechaFin = fechaf.Date; pedidoTemporal.Ciudad = pedidosCiudad.ElementAt(i); pedidoTemporal.Cantidad = pedidosCiudad.ElementAt(i + 1); pedidos.Add(pedidoTemporal); } ReportDataSource rd = new ReportDataSource("VentasPorCiudadDataSet", 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); }
public ActionResult VentasPorCiudad(DateTime fecha_inicio, DateTime fecha_fin) { List<ReporteCiudad> pedidos = new List<ReporteCiudad>(); ReporteCiudad pedidoTemporal; try { List<string> pedidosCiudad = bl.consultarCantidadPedidosPorCiudad(fecha_inicio, fecha_fin); for (int i = 0; i < pedidosCiudad.Count() - 1; i += 2) { pedidoTemporal = new ReporteCiudad(); 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.Ciudad = pedidosCiudad.ElementAt(i); pedidoTemporal.Cantidad = pedidosCiudad.ElementAt(i + 1); pedidos.Add(pedidoTemporal); } } catch (Exception e) { ModelState.AddModelError("", "Seleccione las fechas para generar el reporte"); } return View(pedidos); }