Publicidad

lunes, 6 de enero de 2014

Instalación de Jasper Reports en OpenERP 7.0

El manejo de Reportes con Jasper Reports en OpenERP se dejo a un lado desde la versión 7.0 pero es una excelente opción al momento de crear reportes para cualquier modelo de OpenERP, para ello de ah modificado el Modulo Jasper Reports para hacerlo compatible con la versión 7.0 del ERP. Si no conocen sobre Jasper Reports les recomiendo el siguiente enlace:

Para poder descargar en Modulo Jasper Reports abriremos una terminal como normalmente se hace y no situamos en los addons de OpenERP, en mi caso seria la siguiente ruta:
cd /opt/openerp/70/addons/
Una ves dentro de los addons de OpenERP pegamos el siguiente enlace:
bzr branch lp:~german-ponce/+junk/jasper_reports
Puede tardar algunos minutos ya que el modulo es algo pesado en MB.
Una ves descargado el nuevo modulo, nos vamos a nuestro OpenERP y actualizamos la lista de módulos:
opeenerp
Buscamos el nuevo modulo de Jasper Reports y le damos instalar:
Nos creara un nuevo menu en la administracion de nuestro sistema, teniendo 2 opciones del menu:
openerp
- Crear Plantilla de Datos .- Esta opción del menu genera el archivo .xml necesario para obtener la información desde OpenERP para ser utilizada en el reporte.
- Jasper Reports .- Esta opcion del menu permite crear un registro en donde subiremos el reporte creado con iReports y asociarlo a un modelo.
Damos clic en la primera opción del menu crear plantilla de datos, nos pedirá el modelo para el reporte y una profundidad de obtención de datos en un diagrama de arbol hasta que relacion maxima podra obtener los datos el Reporte, por defecto si el Depth es mayor a 4 puede ser muy lento el proceso y en algunos casos errores al momento de trabajar con iReport, en mi experiencia creando Reportes con el modulo de Jasper siempre el Depth 4 me ah funcionado en todos los reportes que eh creado.
Una ves generado el archivo .xml podemos iniciar la creación de nuestros Reportes con Jasper Reports en OpenERP 7.0.
openep 
Por defecto el modulo creara el archivo XML en la ruta:
cd /home/usuario/NombredelModelo.xml
En la carpeta principal del usuario de Ubuntu con el nombre del Modelo y la extensión .xml
Espero la información sea de su ayuda y no se olviden visitar nuestra pagina:

25 comentarios:

  1. Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Eliminar
    2. Debes de Acceder a los addons manualmente, creo que esta en C://Archivos de Programa/openerp/....../addons/

      Descargas el modulo y lo pegas en esa carpeta!

      Saludos

      Eliminar
  2. Hola necesito que me indiquen como mando un parametro al reporte desde openerp
    muchas gracias

    ResponderEliminar
    Respuestas
    1. Hola Deyviys OpenERP con Jasper Reports recibe parametros especificos, la manera mas facil de imprimir un reporte con parametros es Creando un Wizard(Asistente) que tome parametros y procese la informacion para que al final te Imprima el Reporte.... Saludos

      Eliminar
  3. Seria bueno si nos das los pasos de como hacer un reporte con parametros

    ResponderEliminar
    Respuestas
    1. Claro Edgar cuando tenga oportunidad subo un Post! Saludos

      Eliminar
  4. tengo que hacer un reporte de ventas de un servidor ecommerce
    pero no se como asociar este servidor a openerp o como me puede ayudar openerp a realizar estos reportes

    ResponderEliminar
  5. Buenas, cargo un problema, al tratar de generar un template.xml de jasperreport, se cierra el módulo y no deja descargar el xml, quiero hacer un reporte de candidatos que solicitan empleo.

    ResponderEliminar
  6. Buenas tardes German,

    Estoy utilizando OpenERP 7.0 con Jasper_reports para la confeccion de informes.
    La conexion que utilizo es mediante datasource JDBC para acceder a la BD sin problemas.

    La version utilizada de Jasper_reports es la de NanTic.

    El tema es que tengo un report creado con iReport y si lo ejecuto en el iReport con funciona perfectamente!!!

    Detalle Query

    SELECT
    iqcirugia."id" AS iqcirugia_id,
    iqcirugia."create_uid" AS iqcirugia_create_uid,
    iqcirugia."create_date" AS iqcirugia_create_date,
    iqcirugia."write_date" AS iqcirugia_write_date,
    iqcirugia."write_uid" AS iqcirugia_write_uid,
    iqcirugia."autoriza" AS iqcirugia_autoriza,
    FROM
    "public"."iqcirugia" iqcirugia INNER JOIN "public"."iqcirugia_location" iqcirugia_location ON iqcirugia."id" = iqcirugia_location."cirugia_id"
    INNER JOIN "public"."stock_location" stock_location ON iqcirugia_location."location_id" = stock_location."id"
    INNER JOIN "public"."res_company" res_company ON iqcirugia."company_id" = res_company."id"
    WHERE
    $X{ IN ,(iqcirugia.id::varchar),PIDS}

    En el report tengo creado 2 parametros (IDS, PIDS)
    Parametro 1 -> IDS class = object
    Parametro 2 -> PIDS class = java.util.list

    El problema es que cuando lo ejecuto desde OpenERP no me recoje correctamente el ID del registro que estoy posicionado.

    Me explico, si estoy posicionado en el registro del 1 al 9 funciona bien, pero en el momento que me posiciono en el ID 11, 12, 13 pierde el primer caracter... o sea si le doy a imprimir el registro 13, me imprime el 3??

    detalle jasper_report.py

    def executeReport(self, dataFile, outputFile, subreportDataFiles):
    locale = self.context.get('lang', 'en_US')
    connectionParameters = {
    'output': self.outputFormat,
    #'xml': dataFile,
    'csv': dataFile,
    'dsn': self.dsn(),
    'user': self.userName(),
    'password': self.password(),
    'subreports': subreportDataFiles,
    }
    parameters = {
    'STANDARD_DIR': self.report.standardDirectory(),
    'REPORT_LOCALE': locale,
    #'IDS': self.ids,
    'IDS': ','.join(map(str,self.ids)),

    Como veréis, he incluido modificación en el código jaspert_report.py, en el método executeReport ya que sino, no me recogía correctamente el ID.

    Si le pongo por defecto, por ejemplo:
    ..
    result = {'13'}
    ..
    y luego

    'IDS': ','.join(map(str,result)),

    Me sigue imprimiendo el registro 3.

    Os habéis encontrado con este problema?, alguna manera de trabajar con jasper_report con OpenERP 7.0 y datasource JDBC para realizar queries complejas?

    Muchas gracias

    Juan

    ResponderEliminar
  7. German tengo una duda al activar los workers en mi config tengo el siguiente error
    https://bugs.launchpad.net/openobject-jasper-reports/+bug/1286607/comments/1
    Sabes si, existe alguna forma de reparar. Solo sucede cuando activo workers en mi archivo de configuracion, cuando lo desactivo funciona normal.

    Saludos

    ResponderEliminar
    Respuestas
    1. Si lo eh hecho funcionar con Workers este es un Bug que tiene el modulo, pero se corrige si utilizas nginx con OpenERP (Odoo).

      Eliminar
    2. Yo actualmente uso nginx para mi odoo v7 o te refieres configurar el nginx para el jasper porque veo que maneja un puerto 8090

      Eliminar
    3. Hola German, buen día te comento que ya logré solucionar, muchas gracias de todas maneras por la info.

      Eliminar
  8. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  9. Hola, saludos, espero y puedas responder, de verdad necesito usar el módulo, pero seguí tus pasos al pié de la letra, todo funcionó de maravilla, pero al momento de seleccionar la plantilla, luego sus relaciones (usé 2) aparecía cargando y no me salía opción de bajar el Xml necesario para poder llevar a iReport y diseñar, me podrías orientar en ello? gracias!

    ResponderEliminar
    Respuestas
    1. me permito editar para dar más detalles, luego de que aparecía cargando, se cerraba, no daba opción a descargar

      Eliminar
    2. y vuelvo a escribir ya que ando haciendo varias pruebas, disculpa si lo consideras Spam, pero es algo que necesito con urgencia. al intentar subir un .jxrml me salta este error

      IOError: [Errno 13] Permiso denegado: u'/opt/openerp/v7/addons/jasper_reports/custom_reports/Factura_Venta_jasper_report.jrxml'

      Eliminar
    3. El problema parece estar en los permisos del servidor, debes verificar que el usuario con el que arrancas odoo, pueda escribir datos en esa ruta.

      Eliminar
  10. Hola German, muchas gracias por el aporte amigo,

    Me podrias decir como puedo instalar el modulo en Windows?

    ResponderEliminar
    Respuestas
    1. En windows, deberás meter el modulo en la ruta de instalación del Sistema. Por ejemplo c://Archivos de Programa/odoo/addons, la ruta anterior solo es a modo de ejemplo, lo segundo es actualizar el listado de modulos, buscas jasper_reports e Instalar.

      Eliminar
  11. Hola, escribo por acá otra vez, estuve intentando descargar el fichero de Jasper Reports que indicas en bazar y me indica que hay error de conexión, ya lo he instalado antes sin problemas, pero ahora me indica ese error

    ResponderEliminar
    Respuestas
    1. Hola, podrias probar nuevamente al parecer era un error con el servidor de Launchpad.

      Saludos

      Eliminar
  12. Hola, cree el reporte pero cuando voy a imprimir sin importar el registro que seleccione para imprimir siempre imprime el primer registro, que puede ser? gracias.

    SELECT
    laboratorio_inve12113."id" AS laboratorio_inve12113_id,
    laboratorio_inve12113."consecutivo" AS laboratorio_inve12113_consecutivo,
    laboratorio_inve12113."ar" AS laboratorio_inve12113_ar,
    laboratorio_inve12113."cr" AS laboratorio_inve12113_cr,
    laboratorio_inve12113."total" AS laboratorio_inve12113_total,
    laboratorio_inve12113."br" AS laboratorio_inve12113_br
    FROM
    "public"."laboratorio_inve12113" laboratorio_inve12113

    ResponderEliminar
    Respuestas
    1. Hola Luis, que versión de Odoo u Open estas utilizando ?

      Eliminar