public ActionResult Descargar(string tipo, string reportId, string primarykey) { var service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)); var tipoDocumento = (TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), tipo); Guid usuario = ContextService.Id; string name = reportId; ViewBag.Tipo = (int)tipoDocumento; ViewBag.Usuario = usuario.ToString(); var model = new DesignModel { Url = reportId, Report = service.GetDocumentoParaImprimir(tipoDocumento, usuario, name)?.Datos, DataSource = FDocumentosDatasourceReport.CreateReport(tipoDocumento, ContextService, primarykey).DataSource, Name = name }; var report = new XtraReport(); using (var ms = new MemoryStream(model.Report)) { report.LoadLayout(ms); report.DataSource = model.DataSource; report.Name = model.Name; using (var stream = new MemoryStream()) { report.ExportToPdf(stream); return(File(stream.GetBuffer(), "application/pdf")); } } }
public ActionResult Visualizar(string tipo, string reportId, string primarykey) { var service = new DocumentosUsuarioService(MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos)); TipoDocumentoImpresion tipoDocumento = (TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), tipo); Guid usuario = ContextService.Id; string name = reportId; Dictionary <string, object> dictionary = null; if (primarykey.IsValidJson()) { dictionary = JsonConvert.DeserializeObject <Dictionary <string, object> >(primarykey); } ViewBag.Tipo = (int)tipoDocumento; ViewBag.Usuario = usuario.ToString(); var model = new DesignModel { Url = reportId, Report = service.GetDocumentoParaImprimir(tipoDocumento, usuario, name)?.Datos, DataSource = FDocumentosDatasourceReport.CreateReport(tipoDocumento, ContextService, primarykey).DataSource, Parameters = dictionary, Name = name }; Session["ReportViewer"] = model; return(View(model)); }