Como hacer que un reporte muestre la información más actualizada

 

Fecha: 26/Ago/2003 (27/Ago/2003)
Autor: Daniel Maya Ortiz  < danielmaya@hotmail.com  >


A partir de la publicación del artículo “Cómo abrir un reporte hecho en Crystal Reports” he recibido varias preguntas, las cuales agradezco y espero haberles dado una respuesta satisfactoria, y he notado que algunas de ellas van en relación a que un reporte no muestra la información más reciente en la base de datos. Algunas personas tienen que abrir el reporte en Crystal Reports, hacer clic en el botón Actualizar y ejecutar la aplicación que manda llamar al reporte para que se muestren los datos actuales de la base de datos.

Obviamente esta solución al problema no es en lo más mínimo aceptable, puesto que no todas las máquinas en las que se va a instalar la aplicación va a tener instalado Crystal Reports; y si así fuera, sería demasiado impráctico para los usuarios tener que abrir Crystal Reports, hacer clic en el botón Actualizar y regresar a la otra aplicación. Definitivamente no es una solución que los usuarios estén dispuestos a aceptar. Sin embargo, el problema no es en sí un problema, sino más bien es el comportamiento por default de Crystal Reports, lo que significa que podemos hacer que Crystal se comporte de una forma diferente. y lo mejor es que tan sólo bastan unos cuantos clics para solucionar nuestro “problema”. Para este artículo he decidido no incluir programa de ejemplo, puesto que el mejor ejemplo lo tienen ustedes: todas aquellas aplicaciones que no funcionan correctamente debido a que el reporte no muestra la información más actualizada son el mejor ejemplo que podemos usar.

 

LA RAIZ DEL PROBLEMA

Así que manos a la obra, comencemos por abrir ese reporte que no funciona correctamente. Una vez abierto en Crystal Reports, vayamos al menú archivo. En la siguiente figura muestro ese menú.

                                 

Encerrada en un círculo rojo he puesto la raíz del “problema”: la opción de menú Guardar datos con el informe. El mismo título nos da una idea de lo que hace esa opción de menú, sin embargo deseo hacer una explicación lo más detallada posible sobre esta opción.

¿Qué sucede cuando esta opción está activa?

Lo que sucede es que cada vez que actualizamos el reporte Crystal Reports lanza el query a la base de datos, toma el recordset que se le manda como respuesta, organiza los datos y los muestra en pantalla. Sin embargo, además de eso, deja los datos del recordset en memoria, y cada vez que mandamos guardar el reporte Crystal guarda esos datos dentro del mismo archivo RPT. De manera que cuando mandamos llamar el reporte desde nuestra aplicación Crystal no lanza el query a la base de datos, sino que muestra los datos que están guardados dentro del mismo archivo RPT. Por eso mismo, cada vez que mandamos llamar al reporte desde nuestra aplicación se muestran los mismos datos y no los que actualmente están en la base de datos.

¿Qué sucede cuando esta opción está inactiva?

Cuando esta opción no está activa, Crystal Reports descarta los datos que tiene en memoria a la hora de guardar el reporte. Esto hace que el archivo RPT disminuya en tamaño, y esta disminución depende obviamente del total de datos que haya regresado la consulta; pero por lo general estamos hablando de unos cuantos Kilobytes. Por lo tanto cada vez que mandemos mostrar el reporte desde nuestra aplicación, Crystal lanzará el query a la base de datos y organizará y desplegará el reporte en pantalla, si es el caso. Esto quiere decir que si ejecutamos nuestra aplicación en un entorno de red y mandamos mostrar el reporte, esto se traducirá en un viaje de ida y vuelta hacia el servidor, de ida con el query a ejecutar y de regreso con los datos que se van a mostrar en el reporte. Pero a cambio de esto obtenemos la información más actualizada de nuestra base de datos. Pero a final de cuentas uno de los principales objetivos de un reporte es mostrar información actualizada para tomar decisiones oportunas en base a dicha información ¿o me equivoco? Por lo tanto y para resolver el “problema” que teníamos simplemente tenemos que hacer clic sobre esa opción de menú para desactivarla y guardar el reporte.

 

CAMBIAR EL COMPORTAMIENTO POR DEFAULT

Con esto se soluciona el problema para el reporte que acabamos de guardar. Sin embargo, cada nuevo reporte que hagamos en Crystal tendrá ese mismo comportamiento, y en cada reporte que hagamos tendremos que cambiar esa opción de menú para no tener problemas más adelante. Pero ¿no habrá alguna forma para que cada reporte nuevo que yo haga tenga esa opción inactiva? Claro que la hay. Claro que podemos cambiar el comportamiento por default de Crystal. Para esto debemos hacer clic en el menú Archivo | Opciones, con lo que abriremos el cuadro de diálogo Opciones. Ahora hagamos clic en la ficha Elaborando informes, que se muestra en la siguiente pantalla:

                          

Y debemos asegurarnos que la opción Guardar datos con el informe esté inactiva. Al hacer clic en el botón Aceptar haremos que a partir de ahora y en adelante, cada reporte nuevo que hagamos tendrá desactivada esa opción en el menú Archivo.

 

Espero que este artículo les haya servido de algo. Un agradecimiento a las personas que me han escrito al mail, les agradezco sus comentarios, los cuales me sirven para ver qué tengo que investigar y qué artículos deberían ser escritos. Espero responder de la mejor manera a sus preguntas.

Daniel Maya Ortiz. danielmaya@hotmail.com  

 


Otros artículos sobre Crystal Report

ir al índice