Reports in Odoo Studio
Reports in Studio are stored as two linked records:
ir.actions.report— the action record that triggers PDF generation. This defines which model it runs on, the paper format, and the output filename.- QWeb template (
ir.ui.viewwithtype='qweb') — the HTML/XML template that defines the layout. Odoo renders it to PDF using wkhtmltopdf.
Studio generates both records automatically when you create a new report. If you later export to a module, both are included in the export as XML.
Creating a New Report
- Open Studio on the app you want to add a report to (e.g., open a Project Task record and click Studio).
- In the left panel, click the Reports tab (document icon).
- Click New Report.
- Enter a Report name (e.g., "Task Summary Sheet").
- Choose a Layout (see next section).
- Click Create Report. Studio opens the report canvas in edit mode.
After creating the report, it automatically appears in the Print menu of the corresponding model's records.
Report Layout Options
Studio offers three starting layouts:
| Layout | Structure | Best for |
|---|---|---|
| Table | Header, a data table with selectable columns, footer | Listing records — orders, invoices, inventory counts |
| Grouped | Records grouped by a field, with subtotals per group | Summary reports — sales by salesperson, tasks by project |
| Blank | An empty canvas with only header and footer | Custom-formatted documents — certificates, letters, labels |
For most business documents (packing slips, custom order sheets), start with Table. For management summaries, use Grouped. For anything that doesn't fit a table structure (e.g., a certificate of completion, a formal letter), start with Blank and add text and field placeholders manually.
Adding Fields to the Report
In the report canvas:
- Click a column header in the table to select it, then open the Field dropdown in the right panel to choose which model field this column displays.
- Add a new column by clicking the + button at the end of the table header row. Choose the field from the panel.
- Remove a column by selecting it and clicking the trash icon.
- Drag column headers to reorder columns.
Formatting numbers and dates
After selecting a field column, the right panel shows formatting options:
- Format for numeric fields: choose number of decimal places or percentage display.
- Format for date fields: choose short date, long date, or datetime.
- Label: change the column header text shown in the report.
Header and Footer Customization
Click the header area at the top of the report canvas to edit it. The header typically contains:
- Company logo — automatically pulled from
res.company.logo. Toggle visibility in the header properties. - Report title — the name you gave the report, editable directly on the canvas.
- Company name and address — auto-populated from the company record.
- Record reference — e.g., the order number or task ID.
Click the footer area to edit it. Footer elements include:
- Page numbers — "Page X of Y" — toggle on/off from the footer properties.
- Company tagline or website — add via a text field in the footer editor.
Paper format selection
In the Report Properties panel (right panel, with no specific element selected), choose the Paper Format: A4, Letter, A3, or other standard sizes. You can also choose orientation: Portrait or Landscape.
Downloading and Testing
Click the Preview button in the Studio report toolbar to generate a sample PDF from the most recently opened record. The PDF opens in a new browser tab so you can verify layout, formatting, and data accuracy before sharing.
To test from a real record:
- Exit Studio.
- Open any record of the relevant model.
- Click the Print button (or Actions → Print) in the record's header.
- Your new report appears in the dropdown list alongside Odoo's built-in reports.
Attaching a report to an email template
Studio reports can be automatically attached to outgoing emails:
- Go to Email Templates in Settings → Technical → Email → Templates (developer mode required).
- Open the relevant email template (e.g., "Sales Order: Confirmation").
- In the Attachments section, add a new report attachment and select your Studio report from the list.
Now when that email template is sent (manually or via an automation), the PDF is attached automatically.
All Studio reports are QWeb-based. When you export to a module, the report template is exported as a QWeb XML file that you can edit with full HTML/CSS control. This is useful when Studio's visual builder doesn't give you enough layout flexibility.
📋 Key Points
- Studio reports are stored as
ir.actions.report+ QWeb template (ir.ui.view) records. - Three starting layouts: Table (column-based), Grouped (with subtotals), Blank (freeform).
- Add, remove, and reorder columns from the report canvas; format numbers and dates in the right panel.
- Header: company logo, report title, record reference — all auto-populated from company settings.
- Footer: page numbers, tagline — toggle options in footer properties.
- Choose paper format (A4, Letter) and orientation (portrait/landscape) from Report Properties.
- Preview generates a sample PDF; reports appear under the Print button on each record.
- Attach reports to email templates for automatic PDF delivery on outgoing emails.
FAQ
Yes. When adding a field column to a Table layout, the field picker allows you to traverse Many2one relationships. For example, on a Sale Order report, you can include fields from the customer record (partner_id.name, partner_id.phone). For One2many lines (like order lines), you can add a sub-table section that iterates over the lines.
Odoo uses wkhtmltopdf to render the QWeb HTML template to PDF. Some CSS properties that work in a browser may render differently via wkhtmltopdf (especially flexbox and certain CSS3 properties). If you see layout discrepancies, export the report to a module and refine the QWeb template HTML/CSS directly.
Yes. Each report has its own ir.actions.report record which specifies the paper format (paperformat_id). In Studio, use the Report Properties panel to select the format per report. You can also create custom paper formats via Settings → Technical → Reporting → Paper Formats.
No. Studio's report builder is designed for tabular and text data. Charts and graphs in PDF reports require custom QWeb templates with embedded SVG or third-party charting libraries — this is beyond Studio's visual builder and requires code. Odoo's built-in Spreadsheet or dashboard views are better suited for data visualization.