Configurar un informe de ADO.NET en un visor
Dado que el objeto de conjunto de datos generado con ADO.NET Dataset Designer sólo contiene la descripción de los datos y no los datos reales, el informe no puede mostrar ningún dato, ni siquiera tras conectar el informe al objeto de conjunto de datos. Para que el informe muestre los datos reales, debe rellenar el objeto de conjunto de datos con los datos antes de enlazar el informe a Web Forms Viewer o a Windows Forms Viewer. Debe hacerlo en el correspondiente archivo de código fuente del Web Form o Windows Form.
Informes ADO.NET en Web Forms Viewers
Suponga que:
- Ha creado un Web Form con Web Forms Viewer para que contenga un informe denominado CrystalReport1.rpt.
- Está utilizando ADO.NET y MS OLEDB Jet Provider para conectar CrystalReport1.rpt a la base de datos de ejemplo, xtreme.mdb.
- Va a añadir todos los campos de la tabla de clientes de xtreme.mdb al informe.
Para especificar los datos y enlazar el informe a Web Forms Viewer
- En el Explorador de soluciones, haga clic en WebForm1.aspx.
- Haga clic en Ver código del Explorador de soluciones.
- En el archivo de código fuente del Web Form, escriba:
using System.Data.ADO;
- Al principio de la definición de clase, escriba:
public CrystalReport1 oRpt = new CrystalReport1();
- Tras llamar a
InitializeComponent()
enPageInit()
, escriba:
// establecer información de conexión
OleDbConnection oleConn = new
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"
+ “Data Source=C:\\Archivos de Programa\\" +
"Microsoft Visual Studio .NET 2003\\Crystal Reports" +
+ "\\Samples\\Database\\xtreme.mdb");
OleDbDataAdapter dataAdapter = new OleDbDataAdapter ("SELECT * FROM Customer", oleConn);
DataSet1 dataSet = new DataSet1();
// Conectarse, buscar datos y desconectarse de la base de datos
dataAdapter.Fill (dataSet, "Cliente");
// Utilizar el modelo de objetos Report Engine <linebreak>// para pasar conjuntos de datos llenos al informe
oRpt.SetDataSource (dataSet);
// enlazar el objeto de informe con datos a Web Forms Viewer
CrystalReportViewer1.ReportSource = oRpt;
Informes ADO.NET en Windows Forms Viewers
Suponga que:
- Ha creado un Windows Form con Windows Forms Viewer para almacenar un informe denominado CrystalReport1.rpt.
- Está utilizando ADO .NET y MS OLEDB Jet Provider para conectar CrystalReport1.rpt a la base de datos de ejemplo, xtreme.mdb.
- Va a añadir todos los campos de la tabla de clientes de xtreme.mdb al informe.
Para especificar los datos y enlazar el informe a Windows Forms Viewer
- En el Explorador de soluciones, haga clic con el botón secundario en el nombre del proyecto y haga clic en Agregar referencia.
- Añada System.XML.dll como referencia.
- En el archivo de código fuente del Windows Form, escriba:
using System.Data.ADO;
- Al principio de la definición de clase del Windows Form, escriba:
public CrystalReport1 oRpt = new CrystalReport1();
- Tras llamar a
InitializeComponent()
enForm1()
, escriba:
// establecer información de conexión
OleDbConnection oleConn = new
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Archivos de programa\\Microsoft Visual Studio.NET 2003\\Crystal Reports\\Ejemplos\\Base de datos\\xtreme.mdb");
OleDbDataAdapter dataAdapter = new OleDbDataAdapter ("SELECT * FROM Customer", oleConn);
DataSet dataSet = new DataSet();
// Conectarse, buscar datos y desconectarse de la base de datos
dataAdapter.Fill (dataSet, "Cliente");
// Utilizar el modelo de objetos Report Engine para <linebreak>// pasar conjuntos de datos llenos al informe
oRpt.SetDataSource (dataSet);
// enlazar el objeto de informe con datos a Windows Forms Viewer
CrystalReportViewer1.ReportSource = oRpt;
Nota El método
Fill
se conecta a la base de datos especificada, busca los datos y se desconecta de la base de datos. Si desea agregar al informe varias tablas de la base de datos, utilice un enunciado SQL JOIN para unir las tablas y, a continuación, especifique la tabla resultante en el métodoFill.