sábado, 20 de diciembre de 2014

Visual Studio: Cambiar el DSN de un informe Crystal Reports

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. 

Informe Crystal Report en Visual Studio


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.

Cambiar fuente de datos DSN de un informe

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.

Cambiar DSN de un informe en Visual Studio


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)

Crear nueva conexión DSN en Visual Studio

Ahora nos pide el usuario y contraseña para conectarnos al nuevo DSN.

Cambiar DSN

Acceder a un 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.


Actualizar DSN Crystal desde VS


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).

actualizar objeto de Crystal Reports desde Visual Studio

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.

error de Crystal Reports

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.

modificar origen de datos DSN desde Crystal Reports

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.

Cambiar DSN desde Crystal Reports

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

Establecer nueva ubicación Base de Datos desde Crystal Reports

Regresamos a la pantalla anterior en la que ya podemos ver la nueva DSN.

Nueva Base de Datos de Crystal Reports

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