20
Una Herramienta de Reporting Reflexiva Gabriel Omar Cotelli [email protected] A reflective reporting tool

A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Embed Size (px)

Citation preview

Page 1: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Una Herramienta de

Reporting Reflexiva

Gabriel Omar Cotelli

[email protected]

A reflective reporting tool

Page 2: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Agenda

� Introducción / Intro

� Objetivos / Goals

� Documentos y Rendering / Documents � Documentos y Rendering / Documents

and Rendering

� Editor de Reportes / Report Editor

� Trabajo Futuro / Future Work

2

Page 3: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Intro

IntroducciónIntro

Page 4: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Mercap

� 13 años desarrollando sistemas

financieros con Smalltalk

� Productos Unitrade y XTrade para el

mercado financieromercado financiero

� Desarrollo con metodologías ágiles

4

� 13 years developing financial systems using

Smalltalk

� Unitrade and XTrade products for the financial

market

� Agile development

Page 5: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

XTrade� Es un sistema financiero complejo

�12.951 Clases

�729.537 Líneas de Código

�16.312 Casos de Test Funcionales�16.312 Casos de Test Funcionales

� Para un mercado en cambio constante

5

� XTrade is a complex financial system

� 12.951 Classes

� 729.537 Lines of Code

� 16.312 Functional Test Cases

� Always changing market

Page 6: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Objetivos

Goals

Page 7: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

� Programación Visual de Reportes

� Permitir que un analista funcional pueda generar

reportes

� Permitir al cliente hacer modificaciones rápidas a

un reporte

� Poder generar los documentos resultantes en � Poder generar los documentos resultantes en

varios formatos

7

� Visual report programming

� Enables a functional analyst to create a report

� Helps the customer to make quick changes

� Documents must be rendered in several formats

Page 8: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Documentos y

RenderingDocuments and renderingDocuments and rendering

Page 9: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Definiciones de Reportes� Definen la estructura del documento que se va a generar

� Especifican la consulta a evaluar para obtener los objetos iniciales

� Define que variables se podrán utilizar durante la generación del reporte

Report Definitions

generación del reporte

� Son una composición de definiciones de elemento de un documento

� A report definition:

� Defines the structure of the document to generate

� Specifies which query must be evaluated to get the initial objects

� Defines the variables that can be used in report generation

� Is a composition of document element definitions

Page 10: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Definiciones de Elemento del Documento

� Elementos que representan una parte del

documento a generar (secciones, tablas,

imágenes, etc)

� Elementos programáticos (Envíos de Mensajes,

Asignaciones)

� Elementos que trabajan sobre colecciones

(iteración, filtros y transformaciones)

Document element definitions� Elements representing document parts (sections, tables,

images…)

� Programmatic elements (Message Sending, Assignment)

� Collection related elements (iterations, filters and

transformations)

Page 11: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

El Objeto Actual� Inicialmente el contexto de evaluación que se usa en la generación del reporte tiene como objeto actual el resultado de evaluar la consulta especificada.

� El mismo se modifica al evaluar un componente que realiza un envío de mensaje y se reemplaza

Current object

que realiza un envío de mensaje y se reemplaza con el objeto obtenido como resultado del envío de mensaje

� Initially the evaluation context used during report generation has as a “current object” the query result

� The current object is changed during the evaluation of a “Message Sending” component and is replaced with the result of the message sending

Page 12: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Proceso de Generación de un Reporte� Se evalúa la consulta definida y se utiliza como objeto actual el resultado de la misma

� Se evalúan las definiciones de elementos por orden con el objeto actual

� Si la definición es compuesta se evalúan también las definiciones que la componen

12

� Se obtiene finalmente un objeto que representa el documento Report generation process

� The query is evaluated and the result is set as current object

� The element definitions are evaluated in order together with the current object

� For composite definitions the children definitions are also evaluated

� Finally an object representing the document is obtained

Page 13: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Rendering� A partir del objeto que representa el documento se genera el archivo de salida en el formato seleccionado dependiendo del renderer implementado

� El mismo documento puede renderizarse en distintos formatos (HTML, Excel, Word, etc.)distintos formatos (HTML, Excel, Word, etc.)

13

� Based on the object representing the document the selected renderer generates the output file

� The same document can be rendered into several formats (HTML, Word, Excel, …)

Page 14: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Editor de Reportes

Report EditorReport Editor

Page 15: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Hasta ahora pareciera que no hay

nada nuevo….

15

Until now nothing new….

Page 16: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

…vamos a ver un ejemplo en vivo

para entender mejor donde se usa

la capacidad reflexiva de Smalltalk

16

…let’s see a live example

Page 17: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

Trabajo FuturoFuture WorkFuture Work

Page 18: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

� Permitir configurar parámetros arbitrarios del

reporte que no dependan de la consulta elegida

� Permitir al usuario “reificar” conjuntos de

colaboraciones para poder reusarlas

posteriormente

� Soporte de Drag and Drop

� Mejor administración del estilo y presentación

final de los documentos

18

� Non query dependent report parameters

� Allow the user to reify collaborations for later reuse

� Definitions Drag and Drop support

� Better document style management

Page 19: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

¿Preguntas?

Questions?

Page 20: A Reflective Reporting Tool / Una Herramienta de Reporting Reflexiva

¡Gracias!Thanks!Thanks!