Informes KEME con iReport a partir de XML

Como novedad en la versión 2.4 de KEME-Contabilidad se presenta la característica de la generación de la información del mayor de las cuentas y de los balances de sumas y saldos en formato XML; esto nos va a permitir emplear herramientas externas para la elaboración de informes personalizados.

En este artículo vamos a dar un repaso a las posibilidades que nos ofrece la herramienta iReport cuando utilizamos como fuente de datos un archivo XML. Nuesto primer paso será descargar una de las últimas versiones de esta aplicación (en nuestro caso la 3.5.3) desde un lugar de confianza, para ello accederemos a la página del proyecto de Sourceforge en la sección de descargas: http://sourceforge.net/projects/ireport/files/

Seleccionaremos el archivo correspondiente a nuestra plataforma. Para Windows dispondremos de un instalador, por el contrario, para entornos Linux existe un fichero tipo .tar.gz que podremos descomprimir y generará un directorio con todos los componentes de la aplicación.

La forma de arrancar iReport en Windows no va a revestir ningún problema; bajo el sistema operativo Linux, nos situaremos en el directorio “iReport-nb-3.5.3/bin” y ejecutaremos la orden “./ireport”. Si la aplicación no arrancara correctamete, trataremos de suministrar como parámetro el path donde resida el JDK (“Java Development Kit“), por ejemplo: ./ireport –jdkhome /home/pepe/jdk1.6.0_13  – iReport necesita para su funcionamiento el JDK; si la aplicación no arranca, seguramente será debido a que no lo tenemos instalado en nuestro PC, convendría entonces que nos hiciéramos con él en la página de descargas de SUN: java.sun.com/javase/downloads/index.jsp

Si la instalación es correcta el programa se cargará en unos segundos, mostrándonos la pantalla principal:

pantalla-inicial-ireport

Nuestro punto de partida será la generación de una consulta de mayor en un fichero XML. Para ello pulsaremos el botón “Genera archivo XML” de nuestra ventana de consultas en el KEME-Contabilidad:

consmayor

El primer paso con iReport será definir nuestra fuente de datos; esto lo conseguiremos pulsando el botón que posee un icono de enchufe en la parte central superior de la ventana, se abrirá entonces un cuadro de diálogo con la lista de conexiones activas donde pulsaremos el botón “New“. Nosotros vamos a definir una fuente de datos basada en un archivo XML, por lo que en la lista de “Datasource” elegiremos la opción “XML File Datasource” y pulsaremos el botón “Next“; tendremos entonces acceso a la ventana de edición de las características de la conexión:

xml-data-source

En esta ventana asignaremos un nombre a nuestra fuente de datos, por ejemplo “mayor”. En el campo inferior introduciremos el nombre del fichero XML que va a contener los datos para nuestro informe. Especificaremos la ruta completa del archivo. Nos aseguraremos de que el botón de radio “Use the report XPath expression when filling the report” esté activado. Nuestros últimos pasos serán completar los campos “Date Pattern” con “yyyy/MM/dd” y “Number Pattern” con “###0.00;-###0.00″; este proceso es importante ya que estamos definiendo el formato en el que KEME guarda las fechas y los importes monetarios, respectivamente.

El botón “Save” completará el registro de nuestra fuente de datos. Ya estaremos en condiciones de crear nuestro primer informe; para ello ejecutaremos la opción del menú “Archivo–>New file“. Como vemos, en esta aplicación se mezclan etiquetas en español y en inglés; esto es debido a que el proceso de traducción de iReport no está del todo completo.

new-file

En el diálogo “New file” podremos cargar alguno de los informes ya hechos que se suministran como ejemplo. Nosotros nos decantaremos por la opción “Blank A4“; la seleccionaremos y pulsaremos “Open this Template“. Nos aparecerá la pantalla de diseño de informes, que tendrá más o menos el siguiente aspecto:

pantalla-diseño

Nuestro informe aparecerá vacío con algunas secciones del mismo bien definidas: título, cabecera de página, cabecera de columna, detalle, pie de columna, pie de página y sumario.

El siguiente paso será definir los campos, que procedentes de nuestro fichero XML, van a formar parte del informe. Para ello pulsaremos el botón “Report Query“, que podremos encontrar a la derecha de la pestaña superior “Preview” (icono de fuente de datos con una flecha); se abrirá una nueva ventana en la que seleccionaremos como “Query lenguage“, “XPath” . Este tipo de expresiones nos van a permitir seleccionar el contenido del archivo “mayor.xml”.

En la estructura del fichero XML (situada en la parte superior derecha de la ventana) nos situaremos en el primer apunte contable (campo Mayor–>Cuenta–>DetalleCuenta–>Apunte); abriremos los nodos que hagan falta con un “click” del ratón. Una vez situados en este campo, pulsaremos el botón derecho del ratón y seleccionaremos “Set record node“. Con este paso abremos construido una expresión XPath de la forma “/Mayor/Cuenta/DetalleCuenta/Apunte”. Ya estamos en condiciones de añadir campos al informe; para ello abriremos el primer nodo “apunte”  e iremos seleccionando cada campo con el botón derecho del ratón y eligiendo “Add node as a field” del menú contextual. También necesitaremos añadir otros campos que no forman parte de los registros de apuntes, como el nombre de la empresa o el código y descripción de la cuenta. Para ello nos posicionaremos en los campos correspondientes y pulsaremos el botón derecho del ratón seleccionando esta vez “Add node as field (using absolute path)“. El resultado de nuestras selecciones se corresponderá con la siguiente pantalla:

report-query

Si pulsamos el botón “OK” estaremos de vuelta a la pantalla de diseño del informe. Un vistazo a la ventana anterior nos permitirá observar que los tipos de datos de los campos que hemos añadido se corresponden con “String“; sin embargo, hemos añadido números y fechas, por lo que convendría asignarlos correctamente. Para ello abriremos el nodo “Fields” del “Report Inspector” (en la parte izquierda de la ventana), e iremos editando los campos necesarios. Por ejemplo, para el campo “FechaAsiento”, cambiaremos el contenido del combo-box en el apartado “propiedades” a “java.util.date“. Para los campos debe, haber y saldo realizaremos la asignación “java.lang.double“.

A estas alturas ya podemos arrastrar campos al cuerpo del informe. Comenzaremos por el nivel de detalle completando líneas de registro completas con los campos fecha, asiento, debe, haber y saldo. Como podremos observar, las dimensiones de cada campo podrán ser ajustadas libremente; también convendrá asignar un formato de salida a los campos con importes. Esto lo conseguiremos accediendo a “propiedades” (parte inferior derecha de la ventana) en el apartado “Text field properties“, asignando el campo “Pattern” con alguna plantilla. También seleccionaremos desde este apartado el alineamiento horizontal a la derecha para los campos numéricos.

En la sección “Page Footer“, podremos añadir los totales arrastrados del informe. Para ello colocaremos la etiqueta “Sumas y siguen …” junto con los campos “debe” y “haber”, solo que al pegarlos en el informe indicaremos que queremos realizar una operación especial con ellos: chequearemos “the result of an agregation function” y dejaremos “sum” en el combo. El resultado de estas operaciones generará una variable para cada campo (por ejemplo “Debe_1″), a la que accederemos bajo el nodo “Variables” para editar una de sus características; concretamente, queremos que el valor de la misma se vaya arrastrando para todo el informe. Ello lo conseguiremos seleccionando para el campo “Reset type” el contenido “Report“.

Para que nuestro listado de mayor sea correcto, necesitaremos que el pie de la última página del informe contenga la etiqueta “Sumas …” en lugar de “Sumas y siguen”. Una de las formas de conseguir esto será añadir una nueva sección al informe: “Last Page Footer“; para ello nos colocaremos sobre esta etiqueta en el “Report Inspector“, pulsaremos el botón derecho del ratón y seleccionaremos “Add Band“, veremos que el diseño del informe cambia para dar cabida a la nueva banda de resumen que editaremos a nuestra conveniencia.

Podremos completar nuestro informe de mayor añadiendo cuantas etiquetas y campos estimemos oportunos; incluso podremos insertar alguna imagen, como el logotipo de nuestra empresa. En la siguiente captura podremos observar una aproximación a lo que podría ser un informe definitivo:

informe-definitivo

En cualquier momento podremos visualizar una “vista previa” accediendo a la pestaña “Preview” de la ventana del diseñador:

preview

Como hemos podido comprobar en este artículo iReport es una herramienta bastante potente y versátil que nos permite generar informes bastante completos y llamativos. La fuente de la información puede estar compuesta por una conexión directa a la base de datos y se puede especificar mediante sentencias SQL; esto nos permite obtener resultados impecables de cualquier aspecto de nuestra contabilidad, ya sea en formato de informe o gráfico empresarial.

Autor: José Manuel Díez Botella (“Dibosa”)

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

A %d blogueros les gusta esto: