Ir al contenido

Existe vida después de Crystal Reports…

Ya alguna vez Emilio mi ex jefe y master de programación me comentó que usar Crystal Reports era como meterte al castillo de Vlad el Empalador sin previo permiso defendiendo a los Sajones.

Estos últimos días tuve la «suerte» de tomar un proyecto en la oficina que había que entregar pronto. Uno de los requerimientos del proyecto era imprimir una factura la cual se diseña con un reporte. La «tecnología» de reportes utilizada es la que viene por default con Visual Studio 2005: Crystal Reports.

La sensación de desolación que me dejó utilizar crystal reports es incomparable con cualquier otro tipo de dolor. De entrada quise utilizar dos DataTable’s que tenía definidos en un DataSet, de ahí, uno de estos datatables contenía la información general de la factura y por otra parte el otro datatable contenía los detalles o conceptos de la factura, o sea los datos que se «repiten» en la factura. Después de intentar me dí por vencido hasta que Alfredo, compañero de trabajo y mi jefe anterior de proyecto me dijo que lo mejor para mi tranquilidad mental era meter como parámetros los datos generales y solamente meter un datatable para los detalles. Sí, de algún modo crystal reports no soportó manejar dos tablas para generar el reporte, solamente una, algún error de autentificación me marcó que ya no recuerdo.

Ayer pasé la tarde y la noche diseñando la factura y fué una experiencia terrible, las herramientas de diseño que tiene crystal reports son bastante inestables y de hecho muy, pero muy limitadas. Después de pasar preciadas 6 a 8 horas de mi sabado de descanso en esta tarea (y arreglando algunos otros bugs) me quedé a ver TV un rato y me fuí a dormir ya que Yari se había ido a Rosarito con sus amigos y todos los demás conocidos que viven aquí se habían ido a San Luis.

Hoy recordé que tenía un pendiente con el proyecto y mañana debo ir a instalarlo con el cliente así que decidí solucionarlo hoy domingo. Sorpresa que, al abrir Visual Studio e intentar cerrar las pestañas de los archivos aspx que habían quedado abiertas al abrir la solución, este se colgaba.

No me había pasado esto de hecho hasta que comencé a utilizar Crystal Reports, la solución fue cerrar unicamente la pestaña del reporte y acto seguido cerrar visual studio, posteriormente lo volví a abrir y el problema desapareció. Parece ser que el problema es que crystal reports carga algún control ActiveX no soportado por Windows Vista lo cual crea incompatibilidad e inestabilidad.

Uno de los bugs que me causó mas problemas fue que, al agregar un objeto tipo «CrystalReportSource» a la página aspx y dirijirme a seleccionar el reporte este se negaba a mostrarme la vista previa y por lo tanto el reporte no se visualizaba. Resulta que al seleccionar el archivo de reporte me aparecía la siguiente ventana:

 

Después de varios intentos y de estar seguro que el reporte que estaba seleccionando era el correcto decidí eliminarlo y crear uno nuevo. Después, también gracias a la ayuda de Alfredo, pude solucionarlo, me dijo con una tranquilidad de monje tibetano: «No, así no va a funcionar, quitale el path y deja solamente el nombre del archivo» y es que sucede que, crystal (o visual studio) tiene un bug que hace que no tome el path correctamente del archivo, es decir, el archivo aspx que contiene el código que utilizará este reporte estaba mas o menos así:

/Invoice/getInvoice.aspx

Y el reporte:

/Invoice/Invoice.rpt

Por lo cual dí por hecho que lo que me estaba mostrando el combobox era correcto, para solucionar el problema debía eliminar la carpeta «/Invoice» de la ruta del repore aun sabiendo que efectivamente ahí estaba el reporte:

Sé, y entiendo perfectamente que todos los desarrolladores de software nos equivocamos, nadie es perfecto, pero, por Dios, ¿Cómo algo tan importante paso las pruebas de calidad? Supongo que nadie en el grupo de desarrollo de Visual Studio utiliza Crystal Reports, de hecho, hablando con varios compañeros de la oficina me dí cuenta que efectivamente ahí nadie utilizaba crystal reports, preferian hacerlo «a mano» generando páginas con código html.

¿Alguién tiene alguna buena historia con este producto? Por que creo que de lo contrario de hoy en adelante trataré de mantenerme al margen del mismo ya que la primera impresión fué mala y en esto como en las relaciones amorosas, eso es lo mas importante.

Publicado elfrustracionesgeneralprogramacióntecnología

3 Comentarios

  1. Alguna vez recuerdo haber trabajado con Crystal Reports y VB6, pero la verdad para mi los reporteadores son un pain in the ass. Prefiero generar archivos de excel o de word.

    Y si la neta yo también prefiero generar reportes HTML «a mano», porque por lo menos ahi realmente se lo que estoy haciendo y se tiene un poco más de control.

    Saludos!

  2. Henry Henry

    Con tecnologias de reporte la verdad no me ha gustado nunca trabajar con crystal, siempre he trabajado con Reporting Services de SQL Server, y con ése la verdad las historias son todas buenas, otra herramienta de reporteo que he probado con éxito (al principio luché bastante, para qué te miento no?) fue ExtraReports de Developer Express, la verdad está bastante bien, de hecho, buscando por la red, ahora quería ver si alguien tenía hecha alguna facturita, y en vista del logro no obtenido, voy a tener que ponerme como vos, a laburar en el diseño de una factura… en fin… asi es la vida, saludos desde Uruguay y suerte!

  3. Yo tuve la buena fortuna de poder haberme sacado de encima el crystal reports hace unos tres años, cuando decidí pasar los reportes de una aplicación en VB6.0 a HTML ( que pasaron a ser reportes manualmente construidos, con la deventaja que eso supone en cuanto al incremento de cantidad de trabajo de desarrollo necesario, lo cual aún así eso es preferible al crystal…).
    Pero recientemente tuve la mala fortuna de tener que agarrar una aplicación con más de 20 reportes hechos en crystal ( que para dificultad adicional estaban en una proyecto VB.NET, con las importantes diferencias que un programa hecho en VB.NET tiene con uno hecho en VB6.0… ). Algo así como el regreso de Drácula pero sin las chicas ( que generalmente en ese tipo de ficción están muy pero muy buenas ).
    No le deseo a nadie este tipo de «regreso al infierno que ya se había superado».
    Tratar de que algo funcione con crystal reports ( sí, en minúsculas ) me recuerda a los tormentos que pasaron los astronautas del Apolo XIII ( los que vieron la película con Tom Hanks seguramente se acordarán ). La única diferencia tal vez entre el viaje del Apolo XIII y crystal es que con crystal no decimos «Houston… we have a problem», porque todo lo demás es una fotocopia de aquel desastre que al final termina funcionando con parches, después de mil vueltas en el vacío, saliéndose del manual y habiendo arriesgado a los Agradezco que haya comentarios sobre crystal reports como los de éste blog ( y hay miles por todos lados en varios idiomas ). Los manager de proyectos deberían prohibir que los programadores lo usaran por el bien de todos los involucrados en un producto de software ( aunque el Visual Source Safe de Visual Studio 6 tampoco se quedaba atrás en materia de dar problemas, pero esa es otra historia ). Saludos. Daniel.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.