Informes con Uniface

¿Tienes algo que contar? ¿Has visto algo interesante? ¿Vendes algún producto?
luis.vila
Mensajes: 189
Registrado: 17 Sep 2011, 12:46

Informes con Uniface

Mensaje por luis.vila » 06 May 2014, 08:49

Es la pregunta típica con la que me encuentro casi siempre. ¿Y los informes? Antes existía Crystal Reports, ¿hay algo semejante actualmente?

Los Reports de Uniface están ahí porque Uniface preserva el código antiguo durante generaciones. En poco tiempo un orgulloso padre le dirá a su hijo que un determinado form lo desarrolló él hace 40 años. Y sigue funcionando. Será pie para empezar con batallitas de la época que tanto detesta el hijo pero eso es otra historia. El caso de los reports es ése, estaban muy bien a principios de los 90 y siguen ahí porque Uniface preserva todo lo que desarrollamos. Lo merezca o no.

Imagínate que para imprimir un informe solamente necesitas leer los datos de la base de datos y construir un XML. Imagínate que los campos incluidos en el XML se ubican en el informe con el tipo de letra adecuado y ocupando el espacio establecido. Imagina que puedes imprimir a PDF, a PS, a RTF... Todo eso es el W3C XSL-FO Standard que está parcialmente implementado por el Apache FOP (http://xmlgraphics.apache.org/fop/).

Se basa en tener un servidor de impresión (ejecutable por línea de comandos o a través de aplicación web) que recibe unos parámetros y genera la salida. Lo interesante en este punto es que todas las tecnologías de la empresa pueden usar el mismo motor de impresión de informes.

El proceso pasa por generar el XML con el contenido, elegir el XSL que define el informe y enviarle esos ficheros al motor de renderizado.

El quid del asunto es crear el XSL... en otras palabras, el quid del asunto sigue siendo diseñar el informe (hay herramientas WYSIWYG que permiten construir el XSL sin tener que teclear). El fichero XSL stylesheet indica dónde va cada elemento, es una descripción en XML de cómo es el informe. Al pasarlo por una transformación (XSLT) se genera el XSL-FO que ya es la descripción "multiplataforma" de nuestro informe. El renderizado posterior convierte ese informe "multiplataforma" en el resultado final que nos interese (PDF, SVG, PCL, PS, RTF, ...).
Elementos:
  • XML con el contenido (un xmlsave + filedump)
  • XSL Stylesheet - Diseño del informe y creado por una herramienta (por ejemplo XFDesigner)
  • XSL-FO - generado automáticamente, es el informe antes de haber de generar la salida
Si eres de esos que piensa que todo esto es demasiado nuevo o diferente y parece complicado te diré que leer sobre el tema, instalar el Apache-FOP, crear un servicio Uniface que generase el XML y llamase al Apache-FOP, instalar el XFDesigner, crear un informe de prueba con un tamaño de página concreto e incluyendo códigos de barras... me llevó 2 horas. Aunque si has llegado hasta el final, supongo que no serás de esos ;)

$status=0 ; se acabaron los problemas

Responder