TABLA DE CONTENIDOS
- Introducción
- Convertir el archivo .RPT en .REPX
- Identificar el origen de datos válido
- Filtros en el informe principal
- Errores de Scripts
- Campos calculados
- Encabezados de grupo
Introducción
La posibilidad de convertir informes de Crystal Reports a DevExpress es una opción introducida en la versión 5.0.0 que, permite pasar a usar una tecnología más moderna y eficiente en cuanto al uso de los informes.
Antes de ponernos a hacer esta conversión, es conveniente conocer el diseñador de informes.
Si bien se pueden crear informes con DevExpress desde cero, o personalizar informes estándar ya convertidos a DevExpress, en este artículo vamos a ir paso a paso con todas las cosas que vamos a tener que tener en cuenta, revisar, modificar o corregir en este proceso.
Entendemos por conversión no solo el proceso automático del Diseñador de informes que realiza gran parte del trabajo, sino todos los pasos a seguir hasta conseguir que nuestro informe sea 100% funcional y nos muestre los datos que esperamos, tal y como los queremos.
Antes de comenzar a convertir, habrá que comprobar que los módulos 'Crystal Reports XI R2' y 'Crystal Reports .NET', accesibles desde el asistente de instalación, se encuentran instalados en el equipo en el que vamos a realizar la conversión, para evitar posibles errores.
Recomendamos no intentar convertir ni tener abierto más de un informe al mismo tiempo, no por comodidad, sino porque es muy posible que aparezcan errores. Antes de trabajar con otro informe diferente, es recomendable cerrar y volver a abrir el diseñador de informes.
Convertir el archivo .RPT en .REPX
Para empezar con este proceso, necesitaremos abrir el diseñador de informes:
Con el diseñador de informes, vamos a pulsar la opción de menú 'Archivo' -> 'Importar desde informe de Crystal Reports'.
Esto nos abrirá un selector de archivos donde seleccionaremos el informe que queramos convertir. Una vez seleccionado, esperamos a que el proceso termine.
En caso de error en este paso, revisar si tenemos abierto el editor de Crystal Reports, cerrarlo, y cerrar el diseñador de informes y el ERP antes de volver a intentarlo.
Ahora, es importante entender que, a diferencia de Crystal Reports, que tanto el informe principal como sus subinformes se encontraban dentro del mismo archivo, en DevExpress todos ellos son archivos separados, estos subinformes se generan con la nomenclatura '(nombre del informe)_(nombre del subinforme)', así que son relativamente fáciles de identificar.
Un paso que se recomienda tras haber realizado la conversión es intentar guardar el informe, ya que la primera vez que se intenta guardar un informe tras su conversión, puede no saber en qué archivo debe guardarse.
Si ocurre esto, simplemente tendremos que navegar hasta encontrar el archivo convertido, y reemplazarlo.
El archivo que buscamos, y que vamos a reemplazar es el informe principal, no el subinforme.
Identificar el origen de datos válido
Es importante saber identificar cual de los orígenes de datos es válido, ya que en algunos de los pasos, tendremos que saber cual es, ya que si seleccionamos de forma incorrecta, el informe nos devolverá errores y no se podrá visualizar.
En el apartado derecho 'Explorador de informes', tras ir hasta abajo del todo, nos encontraremos con un desplegable 'Data Sources'.
Dentro de este desplegable encontraremos una lista de orígenes de datos, pero solo uno será válido, y es fácilmente localizable, si pulsamos sobre uno de los orígenes de datos, nos aparecerán unas propiedades, entre estas propiedades, nos fijaremos en 'Parámetros de conexión'.
El origen de datos válido será aquel que no tenga completamente vacía esta casilla, en cada informe sólo podrá haber un origen de datos válido, así que cuando encontremos aquel con los parámetros de conexión, no hará falta revisar el resto.
Aunque digamos que el resto de orígenes de datos sean 'no válidos', no significa que los vayamos a eliminar. Por lo general no eliminaremos ningún origen de datos, y mucho menos 'DataConnectionString', que aunque muchas veces no sea válido, se utiliza internamente y es necesario para el funcionamiento del informe.
Filtros en el informe principal
Es posible que el informe de Crystal Reports, tuviese un filtro colocado en el informe principal, y este tipo de filtros, desaparecen del informe al realizar la conversión. Antes de seguir, si bien es posible que no haya un filtro, es recomendable comprobar si hay uno, ya que no hacerlo podría llevar a no mostrar datos correctos.
Para comprobar si el informe tiene algún filtro, en el editor de Crystal pulsaremos 'Informe' -> 'Asistente de selección':
En caso de no tener ningún filtro, Crystal Reports nos mostrará la siguiente ventana, donde nos pedirá que seleccionemos un campo por el que filtrar. Como no tenemos ningún filtro, no tendremos que hacer nada.
Si tenemos algún filtro veremos directamente el asistente de selección, con pestañas diferentes que representan los diferentes filtros que se aplican.
Esto lo trasladaremos al filtro del informe principal, de la misma forma en la que colocamos el filtro de un subinforme.
Errores de Scripts
Este apartado del diseñador se encuentra en la parte inferior, y nos mostrará errores, advertencias y mensajes que nos van a servir para llevar nuestro informe convertido a funcionar y visualizarse correctamente.
Normalmente, nuestro objetivo será que, al haber terminado de realizar la conversión, el apartado se encuentre vacío, al menos de errores y advertencias.
Existen casos en los que, tras haber solucionado la causa de algunas advertencias, estas no desaparecen de la lista. Si esto llegase a ocurrir, para hacerlos desaparecer, recomendamos cerrar el diseñador y volver a abrirlo. Si la advertencia sigue ahí, lo más probable es que realmente no se haya solucionado.
Aun así, puede haber algún caso donde nos interese no hacer que la advertencia desaparezca, por razones de funcionamiento, es posible que nos interese un comportamiento que DevExpress identifique como incorrecto.
The calculated field's expression is invalid
Este aviso es relativamente simple, algo de la expresión del campo calculado es incorrecto, y se debería corregir, nos dará información sobre su origen, como en este ejemplo, que nos dice que el campo calculado 'ImporteMoneda' tiene errores.
The control is overlapped
Esta es la advertencia más común, simplemente nos notifica que un elemento se está solapando con otro, y desaparecerá en cuanto esto ya no esté ocurriendo.
Localizar algunos elementos es sencillo, ya que además de aparecer en la lista de 'Errores de Scripts', son resaltados en rojo en el editor.
Hay que destacar que no siempre que un elemento esté resaltado en rojo significará que se esté solapando con otro, por ejemplo, cuando se realiza un cambio en un subinforme, y sin haberlo guardado se vuelve al informe principal, el subinforme se verá rojo. Al guardar el subinforme, el color volverá a la normalidad.
The end band is not complementary to the Start Band
Este es un error muy específico, nos avisa de que un elemento que cruza a través de las secciones (bands), no está correctamente colocado. Este error se da principalmente con los elementos 'CrossBandBox' o 'Recuadro de Banda Cruzada', que son elementos 'caja' que pueden pasar a través de secciones.
Estos elementos intentan mantener una 'continuidad', si inician en una sección, esperan terminar en la misma sección, o en la sección 'opuesta', así que en caso de no ser así, nos mostrará este aviso.
Campos calculados
Es importante asegurarse de que todos los campos calculados están correctos, o por lo menos los que se utilicen, será comprobar que estén correctos.
Identificar campos calculados utilizados
Existe la posibilidad de tener campos calculados que no se estén utilizando, es por esto por lo que nos interesa identificar aquellos que se utilizan directamente en el informe, o que se usan para otro campo calculado o expresión.
Abriendo el informe con Crystal Reports, vamos a desplegar los 'Campos de fórmula' del 'Explorador de campos'. Aquí tenemos todo lo que se ha traducido en DevExpress como 'Campo calculado'.
Si el campo tiene un 'tick' verde a la izquierda, significa que el campo se utiliza directamente en el informe.
Si no tiene un 'tick' verde, no se utiliza directamente en el informe, pero antes de eliminar su equivalente en DevExpress, debemos asegurarnos de que este no se utiliza en otro campo calculado o en una expresión.
Para saberlo, haremos 'click derecho' sobre uno de estos campos, y pulsaremos 'Buscar en fórmulas...'
Esto nos mostrará una lista de todas las ocurrencias del campo tanto en otros campos calculados como en el formato de los elementos del informe.
Tipo de campo
Uno de los errores más comunes en la importación es que el tipo de campo de un campo calculado sea incorrecto, siendo los más comunes entre estos, números enteros que aparecen como decimales, y decimales que aparecen como enteros.
La solución es sencilla, bastará con seleccionar el tipo de campo correcto del desplegable.
Not supported
Este también es un error en las expresiones, pero es diferente, ya que en este caso, DevExpress no ha podido traducir la expresión, y la ha dejado intacta en el formato de Crystal Reports, lo que significa que habrá que traducirlo completamente de forma manual.
Diferencias en las fórmulas
Puede ocurrir que al importar desde un informe de Crystal se hayan traducido mal funciones, estas son las que hemos detectado:
Mid() -> Substring(): La función Mid(...) de Crystal Reports se traduce a DevExpress como Substring(...), pero el índice de Crystal Reports empieza en 1, y el de DevExpress en 0, pero la conversión no lo cambia, así que seguramente sea necesario restarle 1 al índice en DevExpress.
Debemos tener en cuenta que para verificar que estemos traduciendo correctamente el informe, lo tendremos que comparar con cómo estaba diseñado en Crystal Reports, para ello revisaremos expresiones, fórmulas y parámetros al mismo tiempo con cómo está hecho en Crystal Reports. A su vez, para ver que se visualizan igual, es recomendable previsualizar ambos y comprobar que los datos que se muestran son los mismos (para comprobar que las fórmulas del informe y sub informe están correctas), los estilos coinciden...etc.
Encabezados de grupo
A diferencia de Crystal Reports, DevExpress no permite que los encabezados de grupo estén anidados en sí, pero sí que permite que se coloquen uno después del otro, y el efecto a la hora de visualizarlo es el mismo.
Siempre que veamos un encabezado de grupo, sea en el informe principal, o en un subinforme, deberíamos comprobar que el campo que define el grupo sea correcto.
Utilizando el desplegable, buscaremos el campo específico que le corresponda. Aquí es importante saber el origen de datos válido y la consulta en la que se encuentra, porque de seleccionar un campo de otra consulta o de un origen de datos no válido, el informe no podrá visualizarse correctamente.
Será importante comprobar el orden de las cabeceras de grupo del informe de Crystal y las del informe generado, ya que normalmente el orden es incorrecto. Para arreglar esto, será suficiente con arrastrar las cabeceras de grupo al orden correcto en el árbol situado a la derecha.
Las cabeceras están 'enlazadas' a sus correspondientes pies, así que no hará falta tocarlos, ya que cambiarán cuando se reorganicen las cabeceras.
¿Le ha sido útil este artículo?
¡Qué bien!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo