lunes, 20 de mayo de 2013

Report_Webkit en OpenERP v7

                          Haciendo Informes Con Mako en OpenERP v7






1. En las dependencias Python  para OpenERP  asegurar que se instaló python-mako.

2.Desde un terminal instalar wkhtmltopdf (sudo apt-get install wkhtmltopdf), luego ir a la siguiete ruta para verificar que se instalo correctamente.
/usr/bin  , luego buscamos el wkhtmltopdf y debe estar allí.

3. Abres  OpenERP v7 e instalas el modulo de Report_Webkit 




DESCRIPCIÓN PASO A PASO

  -1.1 En el terminal copia y pega todas estas dependencias para instalar OpenERP, asegurar que este python-mako y se instale correctamente..

-->
sudo apt-get install bzr bzr-gtk bzrtools graphviz postgresql postgresql-client-common python python-dateutil python-dev python-egenix-mxdatetime python-egenix-mxdatetime python-feedparser python-gdata python-hippocanvas python-imaging python-ldap python-libxml2 python-libxslt1 python-lxml python-mako python-matplotlib python-numpy python-openid python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-reportlab python-setuptools python-simplejson python-tz python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi python-psutil python-docutils python-unittest2 python-mock





 -3.1 *Instalar el modulo de Report_Webkit









        *luego instalar el modulo al que se le hará el reporte, en caso de que no este instalado.
      


CONFIGURANDO EL MOTOR DE INFORMES.

*En la configuración de OpenERP ir a -   Actions   -   Reports
       *Luego presiona crear
       -Se escribe un nombre::
       -El nombre del servicio:: que es el nombre que tendrá la acción en el botón de impresión para los reportes
       -Luego se le pasa el objeto que Mako manejara para la impresión
       -Se le cambia el tipo de archivo a Webkit porque  trae por defecto pdf.
       -Se le da la ruta donde estará el archivo con extensión Mako

al poner Webkit aparecerá una nueva pestaña(notebook) en el menú inferior y aparecerá por defecto en Webkit Header : Base Sample solo guardas y listo, en caso de que quieras configurar la pagina del reporte entras en Base Sample y configuras los margenes y si quieres modificar el código, esta a la orden.









* Crear los logos que estarán en nuestro reporte.
 ----vamos a Settings    --   Webkit Logos 

 ---le damos crear y escribimos el nombre de la imagen, el tipo (png,gif.....), a que compañía esta asociada y seleccionamos la imagen y guardamos.

---el modulo trae una por defecto de Camptocamp




Esto es lo básico desde la interfaz para configurar Report_Webkit en la v7 de OpenERP.


PERO...

¿Cómo codificar un archivo en lenguaje Mako con bloques de Python y HTML/CSS para diseñar el reporte y mostrar el informe con todos los datos que quiero?



1. Lo primero es ir al modulo al que se le hará el reporte, si no existe una carpeta llamada report, ¡Creala!. entras en la carpeta y Luego creas un documento con extensión .mako,

por ejemplo: report_ejemplo.mako
 

------NOTA: (y la ruta completa de este archivo sera: /nombredelmodulo/report/report_ejemplo.mako) --- que será la ruta que tendrá la configuración en        Actions  -   Reports-  de Report_Webkit  en el campo que dice  Report File.







2. Luego se procede a codificar el diseño (HTML/CSS) y la lógica de tu reporte (MAKO/PYTHON).


ejemplo básico:


<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">
            body {
                font-family:arial;
                font-size:0.2cm;
               
            }
               
            table {
                width:100%;
                margin-left:auto;
                margin-right:auto;
                padding: 2px;       
                text-align:center;
                -webkit-border-radius: 10px;
                       
            }
           
           
        </style>
    </head>

 <body>

<header>
        <table>
            <tr><td align="left">${helper.embed_logo_by_name('nombredelaimagen', width=90)|n}</td>       
         </tr>
        </table>
    </header>

%for object in objects:
     <table border="1" cellpadding="2" cellspacing="2">

         <tr>
                    <td style="vertical-align: top;">
                        ${object.id}<br>
                    </td>
                    <td style="vertical-align: top;">
                        ${object.cliente}<br>
                    </td>
                    <td style="vertical-align: top;">
                        ${object.fecha}<br>
                    </td>
                    <td style="vertical-align: top;">
                        ${object.producto}<br>
                    </td>
                    <td style="vertical-align: top;">
                            ${object.descricion}
                      
                    </td>
                    <td style="vertical-align: top;">
                            ${object.comentario}<br>
                    </td>
                    <td style="vertical-align: top;">
                                       ${object.total}-<br>
                    </td>
         </tr>
     </table>

  %endfor
 </body>
</html>




Nota.: Algo muy básico, todo depende del tipo de diseño que se requiere para el reporte, por ejemplo el que esta en el principio, solo hay que jugar con HTML/CSS y hacer la estructura como de una página web.

Para ampliar mas los ejemplos y conocimiento sobre Mako ir a: http://docs.makotemplates.org/en/latest/syntax.html