BlogoDev

Tag: Crystal Reports

Crystal Reports con DataSet’s en ASP.Net

by P-los on Jan.20, 2010, under Técnicas, Web

Esta ocasión me topé con la necesidad de mostrar un reporte de Crystal Reports en un formulario .aspx de .NET tomando como origen de datos un DataSet. Tras un buen rato de probar con diferentes métodos que me encontré en Google y varios foros que no lograron resolver mis dudas, he aqui una forma sencilla para lograr este cometido.

Lo primero que hay que hacer es crear el DataSet (archivo .xsd). No mostraré aqui como crearlo pues ya hay muchos sitios con esa información, así que supondremos que ya lo tenemos creado.

Ahora crearemos nuestro reporte. Agregamos un nuevo elemento a nuestro proyecto de tipo “Crystal Reports” y en el “Field Explorer” en el nodo “Database Fields” seleccionamos “Database Expert” en el menú contextual:

DatabaseExpert

Dentro del arbol en el cuadro izquierdo se mostrarán los DataSets que tenemos en nuestra solución. Agregamos el (los) DataSet o Tabla que requerimos y aceptamos. Una vez hecho esto, en el “Field Explorer” se mostrarán las tablas y campos que hayamos seleccionado. Arrastramos estos campos a nuestro reporte para diseñarlo segun nuestras necesidades.

Ahora en nuestro archivo .aspx agregamos un CrystalReportViewer para mostrar nuestro reporte.

En la parte de código, la parte medular es la siguiente:

Visual Basic:

' Llenar DataSet ya sea desde una base de datos, un web service, o datos ingresados por el usuario
Dim dsDatos as dsClientes() = ObtenerDatos()
' Creamos el objeto
Dim rpt As New CrystalDecisions.CrystalReports.Engine.ReportDocument()
' Indicamos la ruta del archivo del reporte que requerimos. En este caso suponemos que está en la raiz de nuestro proyecto
rpt.FileName = Server.MapPath("~\rptListadoClientes.rpt")
' Establecemos nuestro DataSet como origen de datos de nuestro reporte
rpt.SetDataSource(dsDatos)
' Indicamos al Report Viewer cual es el reporte que queremos mostrar
CrystalReportViewer1.ReportSource = rpt

C#

// Llenar DataSet ya sea desde una base de datos, un web service, o datos ingresados por el usuario
dsClientes dsDatos = ObtenerDatos();
//Creamos el objeto
CrystalDecisions.CrystalReports.Engine.ReportDocument rpt = New CrystalDecisions.CrystalReports.Engine.ReportDocument();
// Indicamos la ruta del archivo del reporte que requerimos. En este caso suponemos que está en la raiz de nuestro proyecto
rpt.FileName = Server.MapPath("~\rptListadoClientes.rpt");
// Establecemos nuestro DataSet como origen de datos de nuestro reporte
rpt.SetDataSource(dsDatos);
//Indicamos al Report Viewer cual es el reporte que queremos mostrar
CrystalReportViewer1.ReportSource = rpt;

Con esto nuestro reporte se mostrará en la ventana del navegador de internet de nuestro usuario sin la necesidad de que tenga que descargar un archivo PDF o DOC.

1 Comment :, more...

Paginas

 

July 2010
M T W T F S S
« Jun    
 1234
567891011
12131415161718
19202122232425
262728293031