lunes, 4 de marzo de 2013

Aeroo Report en OpenERP v6

Definición:
Aeroo Report es un motor para la generación de informes que puede pasar a formar parte de OpenERP mediante la inclusión de sus módulos.
Para el diseño de los reportes se utiliza la suite de OpenOffice o LibreOffice, en especial las herramientas Writer y Calc.

Módulos de Aeroo Report en OpenERP
1._ report_aeroo
Módulo base para el funcionamiento de Aeroo Report.
2._ report_aeroo_ooo
Módulo utilizado para permitir la salida de reportes en formatos .pdf, .doc, .xls
odt -> odt/doc/pdf u ods -> ods/xls/pdf
3._ report_aeroo_sample
Este es un módulo para agregar informes de ejemplo y facilitar las plantillas de informes para la comprensión básica.
4._ report_aeroo_printscreen
Módulo utilizado para impresión y una interfaz cliente GTK de objetos con la salida deseada. No funciona desde el cliente web ya que no tiene capacidades de impresión de pantalla.

Para descargar los 4 módulos de aeroo report podemos usar launchpad https://launchpad.net/aeroo/openerp6 o los comandos bazaar bzr branch lp:aeroo/openerp6 y los copiamos en la carpeta de nuestra preferencia. en nuestro caso /home/usu/desarrollo/

Procedemos a instalar aeroo para lo cual debemos descargar/instalar aeroolib. 
Ingresamos al directorio de aeroolib /home/usu/desarrollo/aeroolib y digitamos sudo python setup.py install   
No olvidar registrar aeroo como un addons en openerp6, agregando lo siguiente en la línea addons_path del archivo openerp-server.conf,  ",/home/usu/desarrollo/aeroo/openerp6"

Procedemos a instalar los módulos desde la interfaz web de openerp.
Finalmente dar clic en aplicar actualizaciones programadas. 

No olvidar correr el siguiente comando con el objetivo de iniciar el servidor que permite la conexión de (Libre/Open) Office con el servidor de OpenERP.
/usr/lib/libreoffice/program/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard & 

En la interfaz web de OpenERP configurar la conexión con (LibreOffice).
 Si al momento de pulsar el botón Connect se despliega un mensaje como el siguiente:
El motivo es porque no se ejecutó previamente el comando que inicializa el servidor interno de LibreOffice.
Si todo es correcto se despliega un mensaje Connection to the OpenOffice.org instance was succesfully established and PDF convertion is working.

Las fortalezas del motor Aeroo informes son:
  • Informes fáciles con diseño en LibreOffice, que permite diseñar y editar informes por personas que no son expertas en informática. de lo contrario, al momento de configurar la conexión con LibreOffice desde la interfaz web de OpenERP se desplegará un mensaje como el siguiente:
  • La amplia variedad de formatos de salida.

Diseño en Writer 
Dirigirse a la barra de menus y escoger Insert/Fields/Other/Functions opción Input Field, escribir una referencia por ejemplo <o.payee_name> donde o representa el objeto sobre el cual se va a hacer las consultas y payee_name el nombre del atributo. Se despliega la siguiente pantalla:
Pulsar Insert y se despliega la pantalla para escribir la etiqueta del campo:
Finalmente pulsar el botón OK, le asignamos un nombre al reporte y lo guardamos.
El reporte quedaría como el siguiente:
Diseño en Calc 
Dirigirse a la barra de menus, escoger Insert/Hiperlink, se despliega una ventana donde hay que escribir el código python para obtener los campos necesarios y generar el reporte:
En el campo Text  se debe escribir la etiqueta del campo a mostrar o en su defecto el mismo contenido de Target. El reporte quedaría de la siguiente manera.


Las funciones se Aeroo Report se las puede encontar en openerp-server-6.0.4/bin/addons/report_aeroo/
en el archivo ExtraFunctions.py que contiene funciones que pueden ser llamadas desde el editor de reportes por ejemplo LibreOffice Calc o Writer.

En este ejemplo se va a utilizar la funcion _search:
def _search(self, model, domain):
   obj = self.pool.get(model)
   ids = obj.search(self.cr, self.uid, domain)
   return obj.browse(self.cr, self.uid, ids, {'lang':self._get_lang()})

Se necesita conocer información de las incidencias de un proyecto determinado enviado como parámetro. La implementación de la función en calc es:
 
Para empezar a utilizar Aeroo Report en OpenERP se debe registrar el reporte en Administración/Aeroo Reports/Reports, dar clic en el botón Nuevo y proceder a configurarlo:
Tomar en cuenta el nombre del objeto del cual se va a sacar los datos según el diseño del reporte y el nombre del servicio.

Autor,
Carlos Yumbillo
TRESCLOUD Cía. Ltda.

Mas información www.trescloud.com