Diferencia entre revisiones de «Webkit Report Engine»
Línea 84: | Línea 84: | ||
<nowiki> | <nowiki> | ||
<html> | <html> | ||
<head> | <head> | ||
Línea 157: | Línea 157: | ||
</body> | </body> | ||
</html> | </html> | ||
</nowiki> | </nowiki> | ||
Revisión del 16:58 5 nov 2013
Webkit és un motor de renderitzat d'html. La idea de Openerp és utilitzar html i css per donar format als informes i després descarregar un pdf per a imprimir. Per poder fer aixó, necessita el programa wkhtmltopdf.
Instal·lació en Ubuntu
- El wkhtmltopdf oficial d'Ubuntu falla. Per tant, cal descarregar-lo de la web oficial:
# wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-amd64.tar.bz2 # bunzip2 wkhtmltopdf-0.11.0_rc1-static-amd64.tar.bz2 # tar -xvf wkhtmltopdf-0.11.0_rc1-static-amd64.tar # mv wkhtmltopdf-amd64 /usr/bin/wkhtmltopdf
- A continuació, cal instal·lar el mòdul report_webkit.
- Cal dir a OpenERP on està el wkhtmltopdf. Cal anar a Configuracion -> Técnico -> Parámetros -> Parámetros del sistema i crear una nova clau webkit_path amb la ruta absoluta del wkhtmltopdf.
- És recomanable fer els nous mòduls en un directori diferent al oficial d'OpenERP. Per tant, es recomana afegir una ruta al addons_path:
# nano /etc/openerp/openerp-server.conf
Afegir:
addons_path = /usr/lib/pymodules/python2.7/openerp/addons,/opt/openerp-custom/addons
- Es reinicia el servici openerp
En aquest moment tenim el mòdul correctament instal·lat, però no tenim informes fets per a webkit. El que anem a fer és instal·lar uns mòduls bàsics per a provar webkit i entendre cóm funciona:
# apt-get install bzr # cd /opt/openerp-custom # mkdir sources # cd sources # bzr branch lp:account-invoice-report/7.0 account-invoice-report # bzr branch lp:sale-reports/7.0 sale-report # bzr branch lp:account-financial-report/7.0 account-financial-report # bzr branch lp:webkit-utils webkit-utils # cd .. # mkdir addons # cd addons # ln -s ../sources/sale-report/sale_order_webkit/ sale_order_webkit # ln -s ../sources/account-invoice-report/invoice_webkit/ invoice_webkit # ln -s ../sources/webkit-utils/base_headers_webkit/ base_headers_webkit # ln -s ../sources/webkit-utils/report_webkit_chapter_server/ report_webkit_chapter_server
A continuació, en OpenERP, instal·lem els 4 mòduls que hem descarregat. Aquest són:
- sale_order_webkit : Un reemplaç per a l'impresió de ordres de venda.
- invoice_webkit: Un reemplaç per al pressuposts.
- base_headers_webkit: Les capçaleres i peu bàsics per a començar a fer informes.
- report_webkit_chapter_server: Utilitat per a proporcionar una funció que necessita webkit.
Una vegada instal·lat, les factures i els pressupostos es poden imprimir amb webkit.
Crear els nostres informes
Per a crear un infome, cal utilitzar una plantilla mako. També necessitem declarar el report en un xml.
En el cas de l'exemple de school del DIA, aquest sería un informe bàsic per als estudiants:
__openerp__.py:
... "update_xml" : ['school_view.xml', 'school_report.xml'], ...
school_report.xml
<?xml version="1.0" encoding="utf-8"?> <openerp> <report id="school.report_student" name="school.student.webkit" auto="False" model="school.student" file="school/report/student.mako" string="Student" report_type="webkit"/> </openerp>
report/student.mako
<html> <head> <style type="text/css"> ${css} div.header { border-bottom: 2px solid black; width: 100%; } span.header { display: inline-block; text-align: left; font-size: 12; font-weight: bold; padding-left: 6px; } div.list { page-break-inside: avoid; width: 100%; border-bottom:1px solid gray; } span.list { display: inline-block; text-align: left; font-size: 12; padding-right: 6px; vertical-align: middle; margin-top: 7px; padding-bottom: 2px; page-break-inside: avoid; min-height: 30px; } </style> </head> <body> %for o in objects : <div class="address"> <b>${o.name |entity}</b><br/> %if o.surname : ${o.surname or ''}<br> %endif %if o.IDNum : ${o.IDNum or ''}<br> %endif <div class="header"> <span class="header" style="width: 40%;">${_("Description")}</span> <span class="header" style="width: 10%;">${_("Subject")}</span> <span class="header" style="width: 10%;">${_("Hours Total")}</span> <span class="header" style="width: 20%;">${_("Website")}</span> <span class="header" style="width: 10%;">${_("Date")}</span> </div> %for line in o.subscriptions : <div class="list"> <span class="list" style="width: 40%;">${line.name}</span> <span class="list" style="width: 10%;">${line.subject}</span> <span class="list" style="width: 10%;">${line.hours_total}</span> <span class="list" style="width: 20%;">${line.website}</span> <span class="list" style="width: 10%;">${line.date}</span> </div> %endfor </div> %endfor </body> </html>
Enllaços
http://help.openerp.com/question/4724/how-to-configure-webkit-for-v7/