Establecer datos a un reporte en Crystal Reports .NET
Para establecer los datos a un reporte en Crystal Reports .NET (es decir el métdo PUSH) se puede utilizar el método SetDataSource()
del objeto ReportDocument
. Sin embargo, si se está utilizando un Dataset que tiene varias tablas enlazadas, hay que tener mucho cuidad con el orden en como se establecen los datos así como en los nombres de las tablas del Dataset
que tienen que coincidir exactamente.
Para evitarnos problemas lo mejor es establecer los datos directamente a cada tabla. Esto se puede lograr mediante la propiedad Database
del objeto ReportDocument
el cual contiene a su vez una colección de objetos Table
(de CrystalDecisions.CrystalReports.Engine.Table). Esta colección contiene las tablas que se definieron en el reporte durante el diseño. Cada una de estos objetos Table
define un método SetDataSource()
para llenar los datos de esa tabla en específico. Por lo tanto se puede hacer lo siguiente:Dataset dts = new Dataset();
// ... obtener los datos para el reporte
ReportDocument rpt = new MiReporte();
rpt.Database.Tables["tabla1"].SetDataSource(dts.Tables["tabla1"]);
rpt.Database.Tables["tabla2"].SetDataSource(dts.Tables["tabla2"]);
rpt.Database.Tables["tabla3"].SetDataSource(dts.Tables["tabla3"]);
CrystalReportViewer.ReportSource = rpt;
No hay comentarios.:
Publicar un comentario