¿Crystal Reports XI o Reporting Services 2005?

No hace mucho, cuando la versión disponible de Reporting Services era la 2000, la balanza se inclinaba en muchos casos sobre Crystal Reports.
Pero Reporting Services ha madurado mucho con el lanzamiento de la versión 2005 y la balanza cae del otro lado en ocasiones.

Obviamente no se puede dar un sí o un no rotundo a ninguna de las dos herramientas, y además la respuesta dependerá de cada caso en particular. Es decir, dependerá básicamente de qué funcionalidades se necesiten implementar. A parte de las funcionalidades, lógicamente, hay otro factor muy importante a tomar en cuenta: el presupuesto.

Se mencionarán los orígenes de datos disponibles, algunas diferencias cruciales a la hora de diseñar los informes, las posibilidades de integrar los informes en aplicaciones y, yendo más allá de la pura herramienta de generación de informes, las facilidades existentes para la gestión, publicación y distribución de informes a nivel empresarial.

El diseño de informes
vs2005splashmq0En cuanto a la facilidad de diseño Crystal Reports aventaja a Reporting Services en dos aspectos: la herramienta de diseño visual de Crystal Reports es algo más rápida e intuitiva, y, sobre todo, ofrece una funcionalidad inexistente en Reporting Services: la posibilidad de editar el informe (cambiar formatos, insertar o eliminar objetos, moverlos, etc.) en la ventana de vista previa. Este diseñador suele resultar más sencillo para los usuarios menos técnicos. Pero también es cierto que no suelen ser ellos los que diseñan los informes. El diseñador de Reporting Services, si bien es cierto que es algo menos intuitivo, también es cierto que ofrece una flexibilidad mucho mayor en algunos aspectos.

La estructura de un informe de Crystal Reports se basa en las secciones del informe: cabecera y pie de página, cabecera y pie de informe, detalles, y cabeceras y pies de grupos, cuando se añaden agrupaciones. En Crystal Reports solo puede existir una jerarquía de grupos. Es decir solo se pueden agrupar los datos de una manera (un grupo anidado dentro de otro y así sucesivamente) y esta agrupación define la estructura de todo el informe. En Reporting Services existen una serie de elementos de diseño, por ejemplo tablas y matrices, que permiten, cada una de ellas, definir sus propias opciones de agrupación, ordenación, filtrado, etc. Además es posible insertar unos elementos dentro de otros (por ejemplo anidar un gráfico o una tabla dentro de otra tabla). De modo que el diseño de un informe con una estructura algo compleja en Reporting Services se puede elaborar directamente, y de manera muy sencilla, mientras que en Crystal Reports exige la utilización de múltiples subinformes que, a parte de ser engorrosos, reducen el rendimiento de la generación del informe, ya que cada informe tiene que realizar su propia
consulta al origen de datos. En reporting Services es muy sencillo reutilizar los datos de una consulta para mostrarlos bajo diversos puntos de vistas (filtrados, ordenaciones y agrupaciones diversas).

Un punto flaco de Reporting Services, respecto a Crystal Reports, es que en Reporting Services no hay manera de insertar texto formateado proveniente de una base de datos. En Crystal Reports se puede indicar que un cuadro de texto se interprete como rtf (Rich Text Format) o como html, interpretando los códigos de formato contenidos en estos textos. En Reporting Services no hay una funcionalidad comparable.

Otro punto en el que se pueden encontrar diferencias importantes es en la orientación hacia papel o hacia web. Crystal Reports queda totalmente condicionado al tamaño del papel a la hora de diseñar el informe: la longitud de las páginas, los márgenes, el espacio disponible, etc. dependen totalmente del papel elegido en las opciones de impresión. Las opciones disponibles suelen restringirse a una página A4 horizontal o vertical, dependiendo de qué impresora haya disponible.

En Reporting Services el diseño es mucho más libre. Esto hace necesario ser algo más cuidadoso a la hora de diseñar para papel (hay que especificar con cuidado el tamaño del área de diseño para restringirse al tamaño del papel) pero da toda la flexibilidad que se pueda desear para visualizar en pantalla. Por otro lado, las propiedades de formato de Crystal Reports son bastante genéricas, mientras que las ofrecidas por Reporting Services están claramente orientadas a Web, lo que no desmerece sus facilidades para formatear con salida a papel. Nadie sabe mejor que el usuario si sus informes irán a papel o se verán en pantalla, pero es bien cierto que cada día se usa más pantalla y menos papel.

En cuanto a la creación de expresiones Crystal Reports dispone de un editor que permite crear funciones complejas, más bien pequeños programas. En Reporting Services las expresiones son mucho más sencillas, comparables a las que se pueden crear en una hoja Excel. Sin embargo, también es posible añadir funciones más complejas, escritas en VB.NET, directamente dentro de los informes. En Crystal Reports se puede aprovechar de la misma manera la potencia de .NET, pero para ello se necesita crear las funciones en Visual Studio, compilarlas y desplegarlas con la aplicación o en el servidor de informes. En ambas herramientas las expresiones pueden utilizarse para múltiples cosas: filtrar, dar formatos condicionales, ordenar, etc.

Los formatos de exportación de informes son muy similares. Crystal Reports cuenta con alguno más, pero los fundamentales, como el PDF, están en ambas herramientas. Además la exportación a Excel desde Reporting Services es, en muchos casos, excelente, y mucho más fácil de controlar, que en Crystal Reports.

El manejo de parámetros es bastante similar. En su forma más avanzada, en ambas herramientas los parámetros pueden ser dinámicos (es decir, pueden mostrar una lista de valores posibles obtenida desde una consulta a base de datos) y en cascada (los valores mostrados en una lista de parámetros dependen del valor proporcionado a un parámetro anterior). Pero esta funcionalidad está implementada en Reporting Services de una manera mucho más efectiva. En Crystal Reports
todos los niveles de listas de la cascada de un parámetro se deben generar desde una única consulta a la base de datos, obligando a traer todas las combinaciones posibles de valores de los parámetros. Además, según la documentación de Business Objects, esta consulta debe ser la propia del informe, y no una separada para los parámetros (un mensaje de error nos advierte de que puede haber problemas si tratamos con más de un origen de datos en Crystal Reports). Limitación enorme. En Reporting Services cada nivel de los parámetros en cascada proviene de una consulta diferente, que puede estar condicionada por los valores elegidos para parámetros anteriores, de modo que se obtienen del origen de datos los datos estrictamente necesarios para cumplimentar las listas: es decir, una vez que el usuario elige un valor para un parámetro se genera dinámicamente una consulta dependiente del valor de dicho parámetro para general la nueva lista.

Acceso a datos

Crystal Reports ofrece una flexibilidad algo mayor en cuanto a la diversisdad de datos accesibles. A parte de los habituales, soportados por las dos herramientas (ADO.NET, OLEDB, ODBC, SQL Server Oracle, etc.) ofrece orígenes de datos más especializados como el acceso a los datos de los logs de IIS o a los datos del sistema de ficheros (carpetas, directorios, tamaños ocupados, etc.), el acceso a algunos formatos de bases de datos basados en ficheros, tipo dBase, y el acceso nativo a algunos servidores menos populares.

En cuanto a acceso a datos de ERPs o CRMs también lleva algo de ventaja Crystal Reports, pero los drivers para acceder a esos orígenes de datos normalmente se adquieren a parte. Así que, en este apartado, la mayoría de las ocasiones habrá empate, pero Crystal Reports saldrá ganando para casos muy específicos (acceso a orígenes de datos no habituales, no soportados por ODBC u OLE-DB).

Integración en Aplicaciones
Para la integración en aplicaciones se pueden considerar varios factores.
El primero es la posibilidad de distribuir el generador de informes con una aplicación. Con ambas herramientas es posible. Es importante destacar que en la versión 2000 de Reporting Services era necesario disponer de servidor, mientras que en la versión actual no es necesario dicho servidor.

En las plataformas soportadas es donde surgen las mayores diferencias. Si la plataforma es .NET, ambos sistemas de informes se integran: son capaces de utilizar DataSets de la aplicación, de embeber los informes en el código, etc. Pero es cierto que al ser del mismo fabricante la integración de Reporting Services es mejor que la de Crystal Reports. Si salimos de la plataforma .NET, sólo Crystal Reports se puede integrar directamente en aplicaciones Java, COM o ASP (no .NET). Sin embargo, aunque esto exija la existencia de un servidor Web IIS de Microsoft, es posible acceder a toda la funcionalidad de los informes de Reporting Services mediante URL (pasando en ella cosas como los parámetros del informe o el formato de generación deseado). Esto permite poder acceder a informes desde cualquier plataforma de programación en la que se pueda embeber un simple navegador Web.

ReportBuilder
Esta es una nueva herramienta surgida en la versión 2005 de Reporting Services que permite al usuario final crear informes a medida a través de una sencilla  aplicación.

Para poder realizar estos informes es necesario que exista un servidor de informes, y además debe haber definido en él un modelo de datos de donde obtendrán su información los informes. Estos modelos de datos normalmente se diseñan con las características de un esquema de estrella de modo que su utilización es muy intuitiva para el usuario final. El usuario puede hacer informes basados en tres tipos de plantilla: tablas, matrices (tablas con agrupaciones en filas y columnas) o
representación gráfica. Esta funcionalidad, en Business Objects, sólo está disponible en los productos de su familia Enterprise.

Gestión de informes a nivel Empresarial

Reporting Services es una parte integrante de SQL Server 2005. Si se dispone de las licencias para la utilización de dicho servidor, con esas mismas licencias se tiene el derecho a acceder a Reporting Services (y a todos los servicios que ofrece SQL Server 2005, como Analysis Services).bo_ent3

Reporting Services no es un simple generador de informes, sino que además ofrece múltiples opciones para la gestión, creación y distribución de informes. La serie de productos que ofrecen esta misma funcionalidad en la oferta de Business Objects son Crystal Reports Server y toda la familia Business Objects Enterprise.

Ambas familias de productos (la de Microsoft y la de Business Objects) ofrecen un portal de gestión de informes donde se pueden almacenar informes, dejar planificada su ejecución automática, exportar a diversos formatos, controlar el acceso a los informes, y lo que cada usuario puede hacer con ellos, mejorar el rendimiento utilizando funcionalidades de cacheado, etc.

Estor productos presentan tantas funcionalidades que su análisis llevaría un artículo completo. La recomendación principal es tener mucho cuidado a la hora de comparar productos y funcionalidades, teniendo muy en cuenta que de versión a versión puede haber diferencias muy significativas, que pueden ser importantes para cada proyecto en particular. En el caso de Reporting Services, por ejemplo, se pueden generar informes personalizados para un grupo de usuarios, que se generen con valores de parámetros concretos para cada uno de ellos, y se envíen automáticamente por email a cada una de sus direcciones de correo. La información de usuarios, parámetros y otras opciones puede obtenerse directamente de una consulta a base de datos.

About justindeveloper

I am MCP (Microsoft Certified Professional). MCTS (Microsoft Certified Technology Specialist) and MCPD (Microsoft Certified Professional Developer), also I am SAP Business One Certified!! Desarrollando desde el IDE de Visual Studio NET 2003 hasta ahora con el Visual Studio NET 2010. Desde Microsoft SQL Server 2000 hasta ahora con el Microsoft SQL Server 2008 R2 y tambien con SharePoint, desde WSS 3.0 y MOSS 2007 y ahora familirizandome con el Sharepoint Foundation 2010 & Sharepoint Server 2010. The software development will follow being every time more wonderful!
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s