Algunas veces tenemos
informes de Crystal Reports en nuestros
proyectos de Visual Studio y todo funciona correctamente, pero llega un momento
en el que cambiamos el DSN del que deben leer los informes de la Base de Datos
y dejan de funcionar los informes, o sencillamente un informe no funciona porque
no está asociado al DSN adecuado.
La solución que aplicaba
antes era eliminar el DSN y por tanto el objeto asociado y conectar de nuevo el objeto de la base de datos al informe de Crystal Reports
Esto nos obliga a
asociar de nuevo campo por campo con la consiguiente pérdida de tiempo. Pero he
encontrado una forma más rápida de asociar el objeto de Base de datos en la que
no es necesario recolocar de nuevo los campos uno por uno.
En este ejemplo concreto
la aplicación tengo varios informes asociados a una DSN que cambia con cada
versión por tanto al compilar la siguiente versión es necesario cambiar la
versión de la DSN (para ello se han creado dos DSN uno de la versión 18.0.0 y
otro de la versión 18.0.1)
Sobre el proyecto de
Visual Studio en el explorador de soluciones nos posicionamos sobre el informe
de Crystal Reports. Al hacer doble click sobre él, se abre en modo edición.
En este momento sobre la
barra superior de menús se genera una pestaña Crystal Reports, sobre ella
elegimos Database y la opción Set Datasource Location.
Esto nos abre una
ventana que nos muestra a los DSN que están conectados tanto el informe como
los posibles sub-informes que pueda tener este.
En la ventana de arriba
nos posicionamos sobre el DSN a cambiar y en la ventana de abajo elegimos la
opción create new conection y ODBC. (Ver ventana de abajo)
Ahora nos pide el usuario
y contraseña para conectarnos al nuevo DSN.
Nos posicionamos sobre
el DSN a cambiar, pulsamos el botón update y se actualiza fácilmente el DNS del
informe y los sub-informes
correspondientes.
Hecho esto probablemente
siga dando error si tenemos objetos internos a la DSN asociados a otra base de
datos. Para actualizar estos objetos procedemos del mismo modo posicionándonos
sobre el objeto antiguo en la ventana de arriba y el nuevo en la de abajo (ver
figura inferior).
Igual que en el caso
anterior una vez posicionados pulsamos update para actualizar el objeto.
Cambiar el DSN directamente desde Crystal Reports
Aun así dependiendo de
la versión de Crystal Reports puede dar
un error (en mi caso particular este error da en un informe que se creó en
Crystal Report 9 y luego se desinstaló dejando Crystal Report 8 por tanto es
poco probable que suceda este error) pero aun así , si sucede y no es posible
instalar Crystal Report 9.
Abrimos el informe a
través de Crystal Report en vez de a través de Visual Studio.
Elegimos Base de Datos y
Establecer Ubicación.
Aparece una ventana
donde aparece el objeto de la Base de datos asociado al informe y comprobamos
que lee de la DNS de la versión anterior.
Al pulsar establecer
nueva ubicación aparece otra pantalla en la que elegimos el nuevo objeto con el
mismo nombre pero leyendo del DSN de la nueva versión (Desarrollo1801 en vez de
Desarrollo1800) y pulsamos establecer
Regresamos a la pantalla
anterior en la que ya podemos ver la nueva DSN.
Una vez verificado que
apunta al DSN correcto pulsamos el botón
Terminado.
Esto puede sacar una
ventana pidiendo los parámetros si se trata de un objeto almacenado, pulsamos
aceptar o introducimos los valores correctos de los parámetros si no permite
aceptar directamente por que estos valores no vengan precargados.
Con esto ya tendríamos
nuestros informes apuntando al nuevo DSN.
No hay comentarios:
Publicar un comentario