Components Reference
Omni Designer includes a comprehensive library of components to build complex and data-rich reports. You can drag and drop these from the Components sidebar tab onto your canvas.
Text and Fields
Section titled “Text and Fields”Used for static content like labels, titles, or headers. You can still insert dynamic variables inside a text block using the expression syntax ${expression}.
Key properties:
- Content text (static or mixed with expressions)
- Font family, size, weight, color
- Text alignment (left, center, right, justify)
- Background color, border, padding
- Text wrap and overflow behavior
- Fallback fonts for CJK, Arabic, Hebrew, Thai, Devanagari, and Cyrillic scripts
Specifically designed for displaying dynamic data from Odoo. When you drag a field from the Data tab, a Field component is automatically created with its expression properly bound.
Key properties:
- Expression (e.g.,
${partner_id.name}) - Format pattern (for numbers, dates)
- All the same styling options as Text
Media and Visuals
Section titled “Media and Visuals”Place static logos or dynamic product/partner images.
Key properties:
- Source: Static URL, uploaded image, or bound to an Odoo binary/image field
- Object fit: Cover, Contain, Fill controls how the image scales within its bounding box
- Border, border radius, background color
Draw horizontal or vertical divider lines to visually separate sections of your report.
Key properties:
- Color
- Thickness (stroke width)
- Dash pattern (solid, dashed, dotted)
Add geometric shapes for visual flair or background emphasis. Click the dropdown arrow on the Shape tile in the Components panel to select a sub-type.
Available sub-types:
- Rectangle with configurable corner radius for rounded rectangles
- Ellipse perfect circles or ovals
- Triangle
- Star
Key properties:
- Fill color and opacity
- Stroke color, width, and dash pattern
- Corner radius (Rectangle only)
- Rotation angle
Layout and Iteration
Section titled “Layout and Iteration”Section
Section titled “Section”The core mechanism for repeating data (like order lines or invoice lines).
- Set the Data Source property to a One2many or Many2many field path (e.g.,
order_line). - Any elements placed inside the Section will repeat vertically for every record in that dataset.
- Sections support alternating background colors and repeating table headers.
- When editing a Section, click it to enter Section Edit Mode. The Data tab will automatically switch to show fields relative to the Section’s data source.
A powerful grid-based layout structure for building structured output like invoices, price lists, and forms.
Table operations:
- Add/Remove columns: Right-click a column header to insert or delete columns
- Resize columns: Drag the column borders in the header row to adjust widths
- Cell content types: Each cell can hold Text, an Image, or a Barcode/QRCode switch types via the cell content type selector
- Cell styling: Select individual cells to configure font, color, alignment, padding, and borders independently
- Footer row: Tables include a footer row with support for colspan (merged cells) for totals and summaries
A generic grouping container. Use Frames to:
- Group multiple elements together so they move and resize as a single unit
- Apply a common background, border, or padding to a collection of sub-elements
Advanced Elements
Section titled “Advanced Elements”Barcode & QRCode
Section titled “Barcode & QRCode”Generate industry-standard barcodes directly in the PDF without server-side image generation.
- Click the dropdown arrow on the Barcode tile in the Components panel to switch between Barcode and QRCode sub-types.
- Bind the value to an Odoo field (like a product barcode or tracking reference).
- Supported barcode standards include EAN-13, Code 128, Code 39, and more.
Page Break
Section titled “Page Break”Forces the renderer to start a new page immediately after this element. Drop it anywhere in the content flow to control report pagination manually.
Common Features
Section titled “Common Features”These features are available across most component types.
Lock / Unlock
Section titled “Lock / Unlock”You can lock any element to prevent accidental modifications. A locked element cannot be moved, resized, or deleted until it is unlocked.
- To lock: Right-click the element and choose Lock from the context menu.
- To unlock: Right-click the locked element and choose Unlock.
This is especially useful for background shapes, logos, or fixed design elements that should not change.
Visibility Conditions
Section titled “Visibility Conditions”Every element has a Visibility section in the property panel. You can set expression-based conditions that control whether the element appears in the final output.
- Example:
${state == 'sale'}the element only renders if the order is in “Sale” state. - See the Data Binding & Expressions page for more details.
Dynamic Styles (Conditional Formatting)
Section titled “Dynamic Styles (Conditional Formatting)”Beyond simple visibility, you can apply conditional styling rules to elements. For example, change the text color to red when a value is negative, or highlight a row with a yellow background based on a condition.
- Open the Dynamic Styles section in the property panel.
- Add rules with an expression condition and style overrides (color, background, font weight, etc.).
- Multiple rules are evaluated in order; the first matching rule applies.