Crystal Reports - Web

15
Crystal Reports De Wikipedia, la enciclopedia libre Crystal Reports es una aplicación de inteligencia empresarial utilizada para diseñar y generar informes desde una amplia gamas de fuentes de datos (bases de datos). Varias otras aplicaciones, como Microsoft Visual Studio, incluyen una versión OEM de Crystal Reports como una herramienta de propósito general del informes/reportes. Crystal Reports se convirtió en el escritor de informes estándar cuando Microsoft lo liberó con Visual Basic. Contenido Crystal Reports ........................................................................................................................................................................ 1 Creando reportes/informes ................................................................................................................................................ 2 Secciones de diseño ............................................................................................................................................................ 2 Grupos ................................................................................................................................................................................. 2 Campos................................................................................................................................................................................ 2 Campos de fórmula ............................................................................................................................................................. 3 Campos de totales .............................................................................................................................................................. 3 Ejemplo Práctico #1: Implementar Crystal Reports en una aplicación ASP.NET ................................................................ 4 Conexión a la Base de Datos ........................................................................................................................................... 4 Conjunto de Datos de la Aplicación Web........................................................................................................................ 4 Archivo de Reporte ......................................................................................................................................................... 6 Formulario Web .............................................................................................................................................................. 7 Ejemplo Práctico #2: Añadir filtros al reporte realizado en la práctica anterior ................................................................ 9 Conjunto de datos de la Aplicación Web ........................................................................................................................ 9 Archivo del Reporte ...................................................................................................................................................... 13 Formulario Web ............................................................................................................................................................ 13

Transcript of Crystal Reports - Web

Page 1: Crystal Reports - Web

Crystal Reports De Wikipedia, la enciclopedia libre 

Crystal Reports es una aplicación de inteligencia empresarial utilizada para diseñar y generar informes desde una amplia 

gamas de fuentes de datos (bases de datos). 

Varias otras aplicaciones, como Microsoft Visual Studio, incluyen una versión OEM de Crystal Reports como una 

herramienta de propósito general del informes/reportes. Crystal Reports se convirtió en el escritor de informes estándar 

cuando Microsoft lo liberó con Visual Basic. 

Contenido Crystal Reports ........................................................................................................................................................................ 1 

Creando reportes/informes ................................................................................................................................................ 2 

Secciones de diseño ............................................................................................................................................................ 2 

Grupos ................................................................................................................................................................................. 2 

Campos................................................................................................................................................................................ 2 

Campos de fórmula ............................................................................................................................................................. 3 

Campos de totales .............................................................................................................................................................. 3 

Ejemplo Práctico #1: Implementar Crystal Reports en una aplicación ASP.NET ................................................................ 4 

Conexión a la Base de Datos ........................................................................................................................................... 4 

Conjunto de Datos de la Aplicación Web ........................................................................................................................ 4 

Archivo de Reporte ......................................................................................................................................................... 6 

Formulario Web .............................................................................................................................................................. 7 

Ejemplo Práctico #2: Añadir filtros al reporte realizado en la práctica anterior ................................................................ 9 

Conjunto de datos de la Aplicación Web ........................................................................................................................ 9 

Archivo del Reporte ...................................................................................................................................................... 13 

Formulario Web ............................................................................................................................................................ 13 

 

Page 2: Crystal Reports - Web

Creando reportes/informes Los usuarios al instalar Crystal Reports en un equipo y utilizarlo para seleccionar filas y columnas específicas de una tabla 

de datos compatibles, pueden organizar los datos en el informe en el formato que necesiten. Una vez que el diseño está 

completo, el informe se puede guardar/salvar como un archivo con extensión rpt. Se puede acceder nuevamente al 

informe reabriendo el mismo, y poder refrescar los datos. Si la fuente de base de datos se ha actualizado, el informe se 

refrescará reflejando estas actualizaciones. 

Secciones de diseño Crystal Reports posee 5 secciones dentro de la plantilla de diseño: 

Sección  Característica 

Encabezado del informe (EI)  Sección usada para el título del informe, o bien, cualquier otra información que el usuario desee que aparezca en esa parte. Por otro lado, puede ser usada para insertar gráficos y tablas cruzadas, los cuales incluyen datos para todo el informe. 

Encabezado de página (EP)  Sección usada para agregar la información que se desea que aparezca en la parte superior de cada página. Pueden ser nombres de capítulos, nombre del documento, etc. Se puedes desplegar títulos de campo sobre los campos (columnas) mismos en su informe. 

Detalles (D)  Sección usada para el cuerpo del informe y se imprime una vez por registro (fila). La mayor parte de los datos del informe aparece en esta sección. 

Pie de informe (PI)  Sección usada para la información que se desea que aparezca sólo una vez al final del informe (por ejemplo, totales generales) y para los gráficos y las tablas cruzadas que incluyen datos relativos a todo el informe. 

Pie de página (PP)  Sección que contiene el número de página y cualquier otra información que se desea que aparezca en la parte inferior de la misma. 

 

Grupos Si se añade un grupo, resumen o subtotal al informe, el programa crea dos secciones más: 

Sección  Característica 

Encabezado de grupo  Sección que contiene el campo de nombre de grupo. Se puede usar para mostrar gráficos o tablas cruzadas de datos específicos del grupo. Sólo se imprime una vez al principio de un grupo. 

Pie de grupo  Esta sección incluye el valor de resumen, si lo hay, y se puede usar para insertar gráficos y tablas cruzadas. Se imprime sólo una vez al final de un grupo. 

Los grupos son una especie de filtros, que permiten ordenar los datos según el criterio elegido, es decir, según el grupo 

específico elegido. 

Campos Muchos de los datos que se pueden insertar en el informe son campos de base de datos seleccionada. Éstos mostrarán 

los datos tal como están almacenados en la base de datos. Para insertar campos se debe seguir el siguiente 

procedimiento: 

Ir a la barra de herramientas estándar, clic sobre Explorador de campos. 

Aparece el cuadro de diálogo Explorador de campos. 

Expandir la carpeta Campos de base de datos, para ver todas las tablas seleccionadas en las bases de datos. 

Expandir las tablas de forma individual para ver todos los campos que contienen. 

Hacer clic sobre el campo que se quiere insertar en el informe. 

Hacer clic sobre el botón Examinar para revisar los valores del campo seleccionado. 

Page 3: Crystal Reports - Web

Hacer clic en Insertar en informe para colocarlo en el informe, o bien, hacer clic y arrastrar hasta un lugar 

deseado, preferentemente en la sección "Detalles". 

Campos de fórmula Si se quieren desplegar datos que son valores calculados, tendrá que crear un campo de fórmula y ponerlo en el 

informe, similarmente a lo anterior (arrastrar hasta el lugar deseado, o insertarlo). 

Se cuenta con un amplio espectro de fórmulas disponibles para la creación de éstas. Las cuales pueden ser programadas 

o creadas según el lenguaje Crystal, integrado al programa, o bien, utilizando la sintaxis de Basic (Visual Basic). 

Ejemplos: 

Campos 

o {cliente.Nombre del cliente}, {proveedor.Nombre del proveedor} 

Texto 

o "Entre comillas", "separados por comas" 

Operadores 

o + (sumar), / (dividir), ‐x (negativo) 

Funciones (las funciones realizan cálculos tales como promedio, suma y conteo. La funciones disponibles se 

listan con sus argumentos y se organizan según su uso). 

o Round (x), Trim (x) 

Estructuras de control 

o "If" y "Select", ciclos "For" 

Valores de campo de grupo (Por ejemplo, se pueden usar valores de campo de grupo para buscar el porcentaje 

del total general aportado por cada grupo). 

o Average (campo, Cpocond), Sum (campo, Cpocond, "condición") 

Mezcla de muchos parámetros: 

o If ({cliente. NOMBRE DEL CLIENTE} [1 to 2] = "Ab") Then "TRUE" 

Else "FALSE" 

o If ({cliente. NOMBRE DEL CLIENTE}) [1 to 2] = "Ab" and ToText({cliente. ID DEL CLIENTE}) [1] = "6" or 

({cliente. NOMBRE DEL CLIENTE}) [1 to 2] = "Ba" and ToText({cliente. ID DEL CLIENTE}) [1] = "5" Then 

"elegido" Else "no elegido" 

Campos de totales Ir al explorador de campos, y hacer clic derecho sobre “Running Total Fields”. Elegir Nuevo. Del lado izquierdo se 

encuentran los campos disponibles, elegir uno y cambiarle el nombre. Escoger el tipo de acumulado (suma, promedio, 

máximo, mínimo, etc.) 

Page 4: Crystal Reports - Web

Ejemplo Práctico #1: Implementar Crystal Reports en una aplicación ASP.NET El ejemplo práctico que se lista a continuación, utiliza la base de datos CONTABILIDAD, proporcionada en el mismo 

paquete de archivos. Dicha base de datos debe instalarse en un servidor SQL SERVER o SQL SERVER EXPRESS. 

Conexión a la Base de Datos 

Es preciso crear la conexión a la base de datos CONTABILIDAD, para que podamos trabajar con ella desde el proyecto. 

Para crear ésta conexión, se deben realizar los siguientes pasos: 

1. Abrir la ficha Explorador de Servidores. En caso de no estar visible, presionar Ctrl+Alt+S. 2. Hacer clic derecho en Conexiones de Datos y elegir Agregar conexión…  3. Escribir .\sqlexpress en el campo Nombre del servidor y contabilidad en el campo Seleccione o escriba el 

nombre de la base de datos 

 4. Hacer clic en Probar conexión, para verificar que funcione, y luego hacer clic en Aceptar. 

 

Conjunto de Datos de la Aplicación Web 

Es recomendable incluir un DataSet en el proyecto, de manera que pueda servirle a Crystal Reports para obtener los 

datos. Para agregar el DataSet, efectúe los pasos que se listan a continuación: 

1. Abrir la ficha Explorador de Soluciones. En caso de no estar visible, presionar Ctrl+Alt+L. 2. Hacer clic derecho en la raíz de la aplicación, y elegir Agregar nuevo elemento… 

Page 5: Crystal Reports - Web

3. Elegir el tipo de objeto DataSet, escribir el nombre del archivo con extensión xsd, y elegir el lenguaje, que DEBE coincidir con el lenguaje que fue elegido para el sitio web. De preferencia, utilizar para el nombre del DataSet, el mismo nombre de la base de datos. Hacer clic en Aceptar. 

 4. Deberá salir el siguiente mensaje siguiente, que nos indica que el archivo debe guardarse dentro de la carpeta 

App_Code. Hacer clic en Sí. 

 5. Nos debe quedar la siguiente ventana. 

  

Page 6: Crystal Reports - Web

6. Ahora solo resta arrastrar las tablas cheques y cuentas al DataSet, y quedará finalmente, de la siguiente manera: 

  

7. Para cada tabla que fue arrastrada al DataSet, se generan 2 objetos, el primero es un DataTable que representa la estructura de la tabla, y un TableAdapter, que se encargará de obtener los datos desde la base de datos y llenar el DataTable. El método predeterminado para ello es el método Fill. 

8. Guardar los cambios.   

Archivo de Reporte 

Incluir en el proyecto, un elemento de tipo “Crystal Report” (extensión rpt), llamado rptCheques.rpt. Elegir usar el 

asistente. 

Datos (Data) 

Es el primer paso del asistente, y debe elegirse el DataSet del cual se obtendrá la información. Para encontrar el 

DataSet, seguir la ruta Project Data  ADO.NET DataSets, elegir el dataset contabilidad y hacer clic en el botón 

“>>”, para añadirlo al reporte. Hacer clic en Siguiente. 

 

Relaciones (Links) 

Si las tablas están relacionadas mediante llaves foráneas, el asistente detectará las relaciones existentes entre 

las tablas. Para verificar el enlace, hacer clic en cualquiera de ellos y luego hacer clic en “Link Options…”. Una 

vez que se verifique la información, hacer clic en Siguiente. 

 

Campos (Fields) 

En este paso se eligen los campos que deben mostrarse en el reporte. Una vez elegidos, hacer clic en Siguiente. 

Para el ejemplo, se muestran los campos: cheques.beneficiario, cheques.importe, cuentas.cuenta 

 

Agrupamiento (Grouping) 

Puede elegirse uno o varios campos, para agrupar la información. Una vez elegidos, hacer clic en Siguiente. Para 

el ejemplo, se utiliza el Campo de Informe cuentas.cuenta en orden ascendente.  

 

Page 7: Crystal Reports - Web

Acumulados (Summaries) 

Si desea mostrarse algún total (suma, promedio, etc.) de algún campo en particular, puede elegirse dicho 

campo, y en la lista desplegable que aparece abajo, elegir el tipo de operación que se aplicará al campo (suma, 

promedio, mínimo, máximo, etc.). Utilizar el campo que arroja el Crystal Reports por defecto (Suma de 

cheques.importe). 

 

Estilo del Reporte 

Se elige el estilo de entre las plantillas existentes, y luego se hace clic en Finalizar. 

Una vez finalizados estos pasos, pueden agregarse más campos al reporte. Guardar el archivo. 

Formulario Web 

Para que el reporte pueda desplegarse en mi aplicación web, es necesario contar con un objeto tipo WebForm. Pasos 

para desplegar el reporte: 

1. Agregar un objeto de tipo WebForm (p.e. Default.aspx) 

2. Agregar un control de tipo CrystalReportViewer al WebForm 

3. Abrir el archivo code‐behind (p.e. Default.aspx.vb, Default.aspx.cs) 

4. Incluir las librerías necesarias para utilizar Crystal Reports 

 

Visual Basic imports System.Data imports System.Data.SqlClient imports CrystalDecisions.CrystalReports imports CrystalDecisions.CrystalReports.Engine 

 

C# using System.Data; using System.Data.SqlClient; using CrystalDecisions.CrystalReports; using CrystalDecisions.CrystalReports.Engine; 

 

5. El Crystal Report, cuando se utiliza para ASP.NET, solo funciona correctamente al incluirlo en el método INIT del 

formulario Web, por lo que debe escribirse el código siguiente: 

Visual Basic Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init End Sub 

 

C# protected void Page_Init(object sender, EventArgs e) { }  

6. Para poder desplegar correctamente la información en el CrystalReportViewer, es necesario contar con los 

siguientes objetos: 

a. Un objeto DataTable, por cada una de las tablas utilizadas en el diseñador de reportes 

b. En caso de haber más de un DataTable, añadir un objeto DataSet 

c. Un objeto TableAdapter, para llenar cada uno de los DataTables 

d. Un objeto ReportDocument, en el cuál se hará referencia a la ruta física del archivo de reporte, así como 

a la información que se desplegará en el mismo. 

Page 8: Crystal Reports - Web

7. Escribir el siguiente código en el método Init: 

Visual Basic 

'Un objeto TableAdapter para llenar para cada tabla 'utilizada en el reporte Dim taCheques As New contabilidadTableAdapters.chequesTableAdapter() Dim taCuentas As New contabilidadTableAdapters.cuentasTableAdapter() ' Es preciso enviar las tablas como un solo objeto, ' por lo que se define un DataSet, y dos objetos DataTable Dim ds1 As New DataSet Dim dtCheques As New contabilidad.chequesDataTable Dim dtCuentas As New contabilidad.cuentasDataTable ' Lleno las tablas taCheques.Fill(dtCheques) taCuentas.Fill(dtCuentas) ' Agrego las tablas al DataSet ds1.Tables.Add(CType(dtCheques, DataTable)) ds1.Tables.Add(CType(dtCuentas, DataTable)) ' Un objeto ReportDocument, con la ruta física al ' archivo de reporte, y el DataSet conteniendo la ' información a desplegar Dim rpt As New ReportDocument() rpt.Load(Server.MapPath("rptCheques.rpt")) rpt.SetDataSource(ds1) ' Indicar al viewer que utilice el ReportDocument CrystalReportViewer1.ReportSource = rpt

Visual C# 

// Un objeto TableAdapter para llenar para cada tabla //utilizada en el reporte contabilidadTableAdapters.chequesTableAdapter taCheques; taCheques = new contabilidadTableAdapters.chequesTableAdapter(); contabilidadTableAdapters.cuentasTableAdapter taCuentas; taCuentas = new contabilidadTableAdapters.cuentasTableAdapter(); // Es preciso enviar las tablas como un solo objeto, // por lo que se define un DataSet, y dos objetos DataTable DataSet ds1 = new DataSet(); contabilidad.chequesDataTable dtCheques; dtCheques = new contabilidad.chequesDataTable(); contabilidad.cuentasDataTable dtCuentas; dtCuentas = new contabilidad.cuentasDataTable(); // Lleno las tablas taCheques.Fill(dtCheques); taCuentas.Fill(dtCuentas); // Agrego las tablas al DataSet ds1.Tables.Add((DataTable)dtCheques); ds1.Tables.Add((DataTable)dtCuentas); // Un objeto ReportDocument, con la ruta física al // archivo de reporte, y el DataSet conteniendo la // información a desplegar ReportDocument rpt = new ReportDocument(); rpt.Load(Server.MapPath("rptCheques.rpt")); rpt.SetDataSource(ds1); // Indicar al viewer que utilice el ReportDocument CrystalReportViewer1.ReportSource = rpt; 

 

8. Ejecutar el programa, y observar el reporte. Fin del ejemplo. 

Page 9: Crystal Reports - Web

Ejemplo Práctico #2: Añadir filtros al reporte realizado en la práctica anterior Se desea que el reporte pueda filtrar la información del reporte, de acuerdo al beneficiario del cheque, contenido en la 

tabla CHEQUES. 

Conjunto de datos de la Aplicación Web  

Es necesario agregar una consulta al TableAdapter de la tabla Cheques, de manera que nos permita filtrar por el nombre 

del beneficiario. 

1. El DataSet debe lucir de la siguiente manera: 

 

2. Hacer clic derecho chequesTableAdapter, para seleccionar el objeto, y luego hacer clic derecho y elegir la opción 

Agregar consulta…. Elegir la opción Usar instrucciones SQL y hacer clic en Siguiente > 

 

Page 10: Crystal Reports - Web

3. En la pantalla siguiente, seleccionar SELECT que devuelve filas y hacer clic en Siguiente > 

 

4. El paso siguiente, nos permite escribir la consulta SQL para obtener los datos. Recordemos que necesitamos 

filtrar de acuerdo al beneficiario del cheque (una cadena). La consulta por defecto que mostrará el asistente es: 

SELECT idcheque, beneficiario, importe, idcuenta FROM dbo.cheques 

Sin embargo, necesitamos agregar el filtro para el beneficiario, por lo que quedaría de la siguiente manera: 

SELECT idcheque, beneficiario, importe, idcuenta FROM dbo.cheques WHERE beneficiario = @beneficiario  La consulta anterior funcionaría perfectamente, de ser beneficiario un valor numérico, o bien si mandara como parámetro el nombre completo del beneficiario, sin embargo, es común poner en el campo de búsqueda solo parte del nombre, por lo que nuestra consulta debe estar preparada para ello. De tal forma, ajustamos:  SELECT idcheque, beneficiario, importe, idcuenta FROM dbo.cheques WHERE beneficiario LIKE ‘%’ + @beneficiario + ‘%’  El símbolo de porcentaje al principio y al final indica un comodín. Ahora, lo único que resta es considerar las mayúsculas y las minúsculas, por lo que finalmente, la consulta quedaría de la siguiente manera:  SELECT idcheque, beneficiario, importe, idcuenta FROM cheques WHERE  (UPPER(beneficiario) LIKE '%' + UPPER(@beneficiario) + '%')  UPPER es una función del Transact‐SQL que convierte la cadena a mayúsculas.  

Page 11: Crystal Reports - Web

5. Escribimos la última consulta en la caja de texto, y hacemos clic en Generador de Consultas (De existir algún 

error en la consulta, al hacer clic en éste botón inmediatamente Visual Studio nos alertará del mismo) 

 

6. El Generador de Consultas me permite construir consultas, pero también verificar su correcto funcionamiento. 

Es para esto último que entramos, así que hay que hacer clic en el botón de Ejecutar consulta.  

 

Page 12: Crystal Reports - Web

7. Inmediatamente, será solicitado el valor del parámetro, lo escribimos y hacemos clic en Aceptar (Eliminar la 

palabra NULL para una consulta general). 

 

8. Verificamos los datos en la parte inferior de la ventana del Generador de Consultas, y hacemos clic en Aceptar. 

9. Lo anterior nos regresa a la ventana donde escribimos nuestra consulta SQL. Simplemente hacemos clic en 

Siguiente. 

10. Finalmente, se nos pregunta el nombre que tendrá la consulta recién generada. En el campo Nombre de 

método, escribimos LlenarxBeneficiario y hacemos clic en Siguiente. 

 

Page 13: Crystal Reports - Web

11. Si todo es correcto, debe salir la siguiente pantalla: 

 

12. Hacer clic en Finalizar. 

13. Para hacer cualquier modificación de la consulta, simplemente hacer clic derecho sobre el nombre de la consulta 

(LlenarxBeneficiario) y elegir la opción Configurar, en el diseñador del DataSet. 

 

Archivo del Reporte 

El archivo rpt no requiere ningún cambio. 

 

Formulario Web 

Agregar los siguientes controles al formulario web que contiene el CrystalReportViewer: 

1. Etiqueta. Atributos  Text: Beneficiario: 

2. Caja de Texto. Atributos  ID: txtBeneficiario 

3. Botón. Atributos  ID: btnFiltro, Text: Filtrar 

Pasos a seguir: 

1. Crear un método llamado FiltrarReporte(), en el cuál se encontrará todo el código capturado en el ejemplo 

anterior. Deberá quedar de la siguiente manera: 

Visual Basic  Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.CrystalReports Imports CrystalDecisions.CrystalReports.Engine Partial Class rCheques Inherits System.Web.UI.Page

Page 14: Crystal Reports - Web

Protected Sub FiltrarDatos() 'Un objeto TableAdapter para llenar para cada tabla 'utilizada en el reporte Dim taCheques As New contabilidadTableAdapters.chequesTableAdapter() Dim taCuentas As New contabilidadTableAdapters.cuentasTableAdapter() ' Es preciso enviar las tablas como un solo objeto, ' por lo que se define un DataSet, y dos objetos DataTable Dim ds1 As New DataSet Dim dtCheques As New contabilidad.chequesDataTable Dim dtCuentas As New contabilidad.cuentasDataTable ' Lleno las tablas taCheques.Fill(dtCheques) taCuentas.Fill(dtCuentas) ' Agrego las tablas al DataSet ds1.Tables.Add(CType(dtCheques, DataTable)) ds1.Tables.Add(CType(dtCuentas, DataTable)) ' Un objeto ReportDocument, con la ruta física al ' archivo de reporte, y el DataSet conteniendo la ' información a desplegar Dim rpt As New ReportDocument() rpt.Load(Server.MapPath("rptCheques.rpt")) rpt.SetDataSource(ds1) ' Indicar al viewer que utilice el ReportDocument CrystalReportViewer1.ReportSource = rpt End Sub Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init FiltrarDatos() End Sub End Class 

 

Visual C# 

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; using CrystalDecisions.CrystalReports; using CrystalDecisions.CrystalReports.Engine; public partial class rCheques : System.Web.UI.Page { protected void FiltrarDatos() { // Un objeto TableAdapter para llenar para cada tabla //utilizada en el reporte contabilidadTableAdapters.chequesTableAdapter taCheques; taCheques = new contabilidadTableAdapters.chequesTableAdapter(); contabilidadTableAdapters.cuentasTableAdapter taCuentas; taCuentas = new contabilidadTableAdapters.cuentasTableAdapter(); // Es preciso enviar las tablas como un solo objeto, // por lo que se define un DataSet, y dos objetos DataTable DataSet ds1 = new DataSet(); contabilidad.chequesDataTable dtCheques; dtCheques = new contabilidad.chequesDataTable(); contabilidad.cuentasDataTable dtCuentas;

Page 15: Crystal Reports - Web

dtCuentas = new contabilidad.cuentasDataTable(); // Lleno las tablas taCheques.Fill(dtCheques); taCuentas.Fill(dtCuentas); // Agrego las tablas al DataSet ds1.Tables.Add((DataTable)dtCheques); ds1.Tables.Add((DataTable)dtCuentas); // Un objeto ReportDocument, con la ruta física al // archivo de reporte, y el DataSet conteniendo la // información a desplegar ReportDocument rpt = new ReportDocument(); rpt.Load(Server.MapPath("rptCheques.rpt")); rpt.SetDataSource(ds1); // Indicar al viewer que utilice el ReportDocument CrystalReportViewer1.ReportSource = rpt; } protected void Page_Init(object sender, EventArgs e) { FiltrarDatos(); } } 

2. En la vista de diseño del formulario Web, hacer doble clic sobre el botón para crear automáticamente el 

controlador de evento Click. Invocar al método FiltrarDatos() dentro del manejador de eventos: 

Visual Basic   Protected Sub btnFiltro_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnFiltro.Click FiltrarDatos() End Sub

 

Visual C#   protected void btnFiltro_Click(object sender, EventArgs e) { FiltrarDatos(); }

 

3. Finalmente, ubicar la siguiente instrucción, en el método FiltrarDatos(): 

taCheques.Fill(dtCheques)

y sustituirla por: 

taCheques.LlenarxBeneficiario(dtCheques, txtBeneficiario.Text)

(No olvidar el “;” si estás en C#) 

4. Ejecutar el programa, y observar el reporte. Capturar el nombre de algún beneficiario y observar el 

funcionamiento del filtro. 

5. Fin del ejemplo.