Por mucho tiempo trabajé con los reportes de Reportviewer, indicando simplemente su ruta en el sistema de archivos, de modo que cuando tenia que publicar, copiaba yo misma todos los reportes en sus carpetas respectivas, porque estos no se incrustaban en la aplicación a la hora de publicar.
La instrucción en código que usaba era la siguiente:
rvInformes.LocalReport.ReportPath = "Reportes/Informes/rptInformes_PagoMedicos.rdlc";
Hasta que buscando un poco más de información encontré el modo de hacer que dichos reportes sean embebidos como recursos de la aplicación, a continuación les muestro el modo en que lo trabajo.
ReportParameter[] repParamHeader = new ReportParameter[1]; repParamHeader[0] = new ReportParameter("RP_UsuarioLogueado", UsuarioLogeado.nombre, false); // LAS TRES LINEAS SIGUIENTES SON OBLIGATORIAS PARA QUE SE RECONOZCA COMO RECURSO EMBEBIDO rvInformes.ProcessingMode = ProcessingMode.Local; rvInformes.Reset(); rvInformes.LocalReport.ReportEmbeddedResource = "miempresa.aplicacion.Reportes.Informes.rptInformes_PagoMedicos.rdlc"; rvInformes.LocalReport.DataSources.Clear(); rvInformes.LocalReport.DataSources.Add(new ReportDataSource("dsInformes", miDataTablePagos)); rvInformes.LocalReport.SetParameters(repParamHeader); rvInformes.LocalReport.Refresh();miempresa.aplicacion.Reportes.Informes es el namespace en mi proyecto ASP.NET MVC. Es necesario que cada reporte RDLC esté configurado de la siguiente manera, tal como se ve en la siguiente imagen En Acción de Compilación debe especificarse: Recurso incrustado
En Copiar en el directorio de resultados debe especificarse: Copiar siempre
3/06/2015 04:00:00 p. m.
Share:
0 comentarios: