Proyecto

General

Perfil

Sistema de Reporting

ATENCIÓN: Este artículo está OBSOLETO

El sistema previo. Dificultades.

El sistema de reporting consta de un servidor de Informes y de una aplicación local para su definición.

El primero permite el alamcenamiento centralizado de las plantillas, su clasificación, ordenación, etc. y la generación bajo petición del usuario de un nuevo informe a partir de la unión de una plantilla con los datos actualizados. Esta generación es visible en pantalla y exportable a algunos formatos electrónicos.

La aplicación local permite la edición y creación de plantillas. Son necesarios conocimentos medios -no al alcance de todos los usuarios - para poder crear o modificar una plantilla. Una vez creada o modificada una plantilla, puede ser incluida en el servidor mediante un proceso de exportación algo enrevesado.

Dificultades:
  • La exportación a aplicaciones ofimáticas no respeta las estructuras originales y dificulta la posterior edición del informe resultante.
  • Son necesario conocimientos que van más allá de la Ofimática para la definición de las plantillas
  • La solución adoptada obliga a la inclusión de una tecnología y un entorno completos.

El sistema actual.

Requerimientos.

En realidad, el sistema de informes que necesitan la mayoría de los posibles usuarios es menos ambicioso. Por su operativa, los usuarios necesitan poseer control absoluto y sencillo sobre los informes generados pues los formatos generados cambian con cierta frecuencia. Así, la herramienta mejor sería aquella que creara la estructura básica de los informes con los datos correctos actualizados y permitiera su edición posterior con Microsofto Office para adaptar el formato o añadir y eliminar elementos.

Si esta funcionalidad se puede conseguir sin incluir una compenenete más en la arquitectura, tanto mejor.

Enfoque conceptual y técnico

La propia Aplicación como origen de datos. El módulo será capaz de leer directamente de la base de datos (este punto ha sido debatido contra la alternativa de que existan Web Services en medio)
RoR como interfaz de usuario y como sistema automático/manual de generación.
RoR o MySQL Stored Procedure como lenguaje de programación de exportación.
XML como estándar de comunicación de datos.
Excel como estándar de formateado
HTML/XML/Excel como resultado final.
Excel como sistema de post-edición.

Ventajas

  • Aprovechamiento: de la capacidad de edición HTML/XML/Excel, por tanto simplificando la post-edición.
  • Reutilización: Al ser la propia aplicación la que genera un fichero de salida estándar, el mismo esfuerzo y la misma lógica se utilizan para cualquier tipo de exportación, independientemente de cuál sea su destino final (informes en papel, otras aplicaciones, etc.)
  • Eliminación: de un componente pesado de la arquitectura.

Problemas y desventajas y sus soluciones (aunque sean temporales)

  • Necesidad de conocer XSL para cambiar los formatos de salida. Se mitiga al disponer de Office para realizar la postedición.

Funcionamiento básico

El usuario dispondrá de un Front End para la creación/edición/ejecución de informes. En este interfaz se le mostrarán todos los campos existentes en la BD (que puedan ser impresos) como una lista.

Podrá entonces seleccionar un campo y asignarlo al informe y hacer esta operación tantas veces como desee. Para señalar su ubicación en el informe final se usarán un sistema sencillo basado en coordenadas de Hoja de Cálculo. Por ejemplo, si desea que el campo seleccionado aparezca en la celda A1, deberá dar estas coordenadas. Podrá además, seleccionar su apariencia modificando cualquier atributo que admite Excel como atributo de celda como por ejemplo, el tipo de letra, su tamaño, su color, el color del fondo de la celda, la alineación, etc.

Podrá incluso seleccionar otro informe como contenido de una celda del informe que está creando, lo cual le permitirá crear subinformes anidados. En este caso, además se le pedirá los parámetros necesarios para ejecutar dicho subinforme. Por ejemplo, creando un informe sobre un socio, podrá indicarse que en una celda se incluyan todos los pagos que ha realizado ese socio, seleccionando un subinforme que muestre esa información como contenido de una celda. Para ello, será necesario crear previamente el subinforme y será necesario informar al sistema de que el parámetro de dicho subinfomre es el Ientificador del Socio (campo que habrá de estar incluido en el informe principal para poder ser utilizado)

Además, podrá indicar que una determinada celda se ubica un texto estático (con la misma posibilidad de asignar atributos que en el caso de que fuera un campo de la BD) o incluso una imagen gráfica.

Una vez compuesto el informe, podrá guardarlo y asignarle un nombre único. Internamente, el sistema almacenará este conjunto de metadatos (nombre dle informe, fecha de creación/modificación, autor, etc.) y almacenará también todas las celdas para las que se ha definido algún contenido, guardando dicho contenido (un campo de la BD o un informe anterior o un texto estático) así como su ubicación y las opciones de formateo que hayan sido seleccionadas. Toda esta información quedará almacenada en la BD y podrá ser posteriormente recuperada y modificada.

En el momento de la ejecución, el sistema leerá esta definición y creará una Hoja de un Libro de Excel situando en las celdas seleccionadas y con los atributos elegidos, la información requerida que en caso de tratarse de campos de la BD, serán sustituidos por sus valores y en el caso de tratarse de subinformes, por el resultado de su ejecución.

El usuario podrá entonces abrir ese Libro de Excel y modificar el resultado final a su antojo, añadiendo o modificando todo aquello que sea necesario.