viernes, 6 de marzo de 2015

Hacer que los reportes RDLC (Reportes para Report Viewer c#) se incrusten con la aplicación a la hora de publicar

Posted by InfoTacticas Soluciones  |  No comments

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:

Get updates in your email box
Complete the form below, and we'll send you the best coupons.

Deliver via FeedBurner
back to top