Smalltalks 2008 Conference.
Description of a tool aimed to help analysts to visually program reports in a financial system.
Video: https://www.youtube.com/watch?v=y1e1tE-WuX0
4. 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
5. XTrade
Es un sistema financiero complejo
12.951 Clases
729.537 Líneas de Código
16.312 Casos de Test Funcionales16.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
7. 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 enPoder 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
9. 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
10. 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)
11. 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
12. 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
13. 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, …)
18. 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