Reportes QWeb en Odoo
QWeb es el motor de plantillas de Odoo: combina HTML, CSS y expresiones Python para generar facturas, cotizaciones, etiquetas y cualquier documento. Genera salida en PDF, HTML o texto plano, y se asocia a un modelo para invocarse desde botones, menús o acciones automáticas.
1
¿Qué son los reportes QWeb?
Son el sistema principal para generar documentos en PDF, HTML o texto plano a partir de plantillas QWeb — un motor de renderizado de vistas que usa sintaxis XML.
Características principales
t-esc, t-foreach, t-if.
2
Tipos de reportes QWeb
3
Crear el archivo de acción del reporte
Vamos a crear un reporte personalizado dentro del modelo de ventas (sale.order). En el módulo personalizado agregamos report/ir_actions_report.xml:

Campos clave del registro:
print_report_name usa una condicional: si el estado es Cotización (draft) o Cotización enviada (sent), el archivo se llama “Cotización – [folio]”; en otro caso, “Venta – [folio]”.
4
Crear la plantilla QWeb
La plantilla con id report_sale_order se crea en report/ir_actions_report_template.xml. Estructura básica:

Al instalar el módulo, el modelo sale.order ya tiene disponible la acción Reporte Ventas:

Al pulsar el botón se descarga el reporte. Con la plantilla básica es solo una página en blanco — pero ya estamos enganchados al flujo:

5
Usar la plantilla external_layout para el encabezado
La plantilla modular html_container contiene la estructura básica. Pero el módulo web aporta más plantillas modulares — entre ellas external_layout para el encabezado:

Al imprimir el reporte de nuevo, vemos el encabezado automático con el logo de la empresa:

6
Mostrar campos del registro en el reporte
Dentro de la plantilla podemos llamar a campos del registro. Agregamos el folio de la venta:

El reporte ahora muestra el folio de la cotización:

t-field="doc.partner_id", t-foreach="doc.order_line") puedes mostrar cliente, líneas de producto, totales, fechas — todo el registro está disponible en la variable doc.
7
Cambiar a qweb-html para iterar diseño
Una buena práctica: durante el desarrollo, usar qweb-html para previsualizar en el navegador sin generar PDF cada vez. Cambiamos el report_type:

El reporte ahora se previsualiza directamente en el navegador — mucho más rápido para iterar:

8
Consejos rápidos
qweb-pdf, qweb-html o qweb-text según el formato que necesites.t-foreach, condiciona con t-if, formatea con t-field.print_report_name y condicionales — los archivos llegan al cliente con un nombre claro.📌 En resumen
Los reportes QWeb son la pieza estándar de Odoo para generar documentos. Combinando una acción (ir.actions.report) con una plantilla XML (vista QWeb) tienes facturas, cotizaciones, etiquetas y cualquier documento listo para imprimir o enviar.
El flujo recomendado: empieza en qweb-html para iterar diseño, usa external_layout para encabezados y pies oficiales, y aprovecha Bootstrap. En Exdoo desarrollamos reportes QWeb a medida — facturación CFDI, etiquetas con códigos QR, comprobantes de operación — todos integrados al flujo del módulo.
Deja un comentario