Zum Inhalt springen

Benutzerdefinierte PDF Reports mit Odoo erstellen

Du möchtest in Odoo Rechnungen, Offerten oder Lieferscheine genau nach deinen Wünschen erstellen und stösst dabei an die Grenzen? Dann bist du hier genau richtig. Eine einfache Anleitung für eine Report-Struktur, die mit allen Odoo Hosting-Methoden funktioniert.

Odoo kann im Standard vieles sehr gut. Schöne PDF-Reports mit benutzerdefinierten Informationen und einem durchgängig präzisen Layout gehören jedoch nicht dazu. Mit Odoo-Studio sind zwar Anpassungen möglich, und der PDF-Builder kann PDFs als Header oder Footer ans Report-Template anhängen. Für viele Unternehmen reicht das trotzdem nicht, besonders bei hohem Anspruch ans Layout der PDF-Berichte. Wenn du deine Berichte selbst anpassen willst und volle Kontrolle über Zeilen, Abstände, Umbrüche und Spalten brauchst, solltest du zuerst die Basics verstehen.

Wie funktionieren Odoo PDF-Reports?

Odoo PDF-Reports, oder auch PDF-Berichte, sind immer identisch aufgebaut. Sie bestehen aus einer Report-Aktion (Report Action), die die Basis des Reports darstellt. Die Report-Aktionen findest du unter: Einstellungen / Technisch / Aktionen / Berichte.

Eine Report-Aktion legt die grundlegenden Parameter eines Reports fest, die wichtigsten sind: 

  • Papierformat: Bestimmt die Seitenausrichtung, Papiergrösse sowie die Seitenränder
  • Der Name des generierten PDF 
  • Das Report-Template

Ein PDF-Report kann mit dem Button "Zum Drucken Menü hinzufügen" auf dem Report-Model verfügbar gemacht werden. Tipp: Vom Hinzufügen bis zum Erscheinen im Print-Menü dauert es bis zu einer Minute, zudem ist ein Page-Reload notwendig.

Report Aktion hinzufügen

Report Aktion ausführen

Sobald ein PDF-Report gedruckt wird, passiert Folgendes: 

  1. Odoo lädt über die Report-Aktion die Report-Vorlage (Report-Template). Die Report-Vorlage ist eine Odoo-QWeb-Ansicht, wie sie auch in Odoo-Website und Odoo E-Commerce verwendet werden. 
  2. Odoo rendert aus der Vorlage eine HTML-Seite mit dem PDF-Inhalt.
  3. Die HTML-Seite wird mit wkhtmltopdf in ein PDF umgewandelt und heruntergeladen.

Um alle Funktionalitäten wie die Standard-Print-Buttons oder das Anhängen der Reports an E-Mails zu erhalten, müssen wir unser custom Report-Template in den Standard Odoo Report-Pfad einfügen. Denn wenn wir einen Standalone-Report erstellen, funktioniert das alles nicht mehr. 

So fügst du dein Custom-Template in den Standard-Odoo-Report-Flow ein

Ein Odoo PDF-Report besteht normalerweise nicht aus nur einem Template. Je nach PDF-Report können in Odoo-Standard bis zu 15 verschiedene Report-Templates involviert sein. Als Beispiel nehmen wir den Odoo Sale Order Report (Angebot/Auftrag). Untenstehend findest du eine Illustration von allen QWeb-Templates, die beim Erstellen eines Sale-Order-PDF in Odoo-Standard aufgerufen werden. 

Sale Report Template Struktur


Um unser custom Template einzufügen, werden wir den Call vom sale.report_saleorder_document mit XPath anpassen und stattdessen unser custom Template aufrufen. 

Schritt 1: Füge ?debug=1 an die Odoo-URL an, um den Developer Mode zu aktivieren. Erstelle unter Einstellungen / Technisch / Benutzerschnittstelle / Ansichten eine neue Ansicht mit folgenden Daten: 

  • Name: Report Saleorder Raw Inherit
  • Ansichtstyp: QWeb
  • Vererbte Ansicht: report_saleorder_raw
  • Vererbungsmodus für Ansicht: Erweiterungsübersicht
  • Architektur:
<xpath expr="//t[@t-call='sale.report_saleorder_document']" position="replace"> <t t-call="companyname.report_saleorder_document_custom" t-lang="doc.partner_id.lang"/> </xpath> 

Resultat:

Report Template Screenshot


Schritt 2: Lade das Import-File von unserem custom Template als CSV herunter.

 Download


Schritt 3: Importiere unser custom Template unter Einstellungen / Technisch / Benutzerschnittstelle / Ansichten. 

Odoo Ansicht Import Screenshot

Fertig: Wenn du nun den "Drucken"-Button auf dem Verkaufsauftrag klickst oder eine E-Mail mit der Offerte an einen Kunden schickst, wird unser custom Report-Template geladen. Die Vorlage im CSV ist mit einem einfachen Satz gefüllt, den du durch beliebigen HTML-, CSS- und QWeb-Content ersetzen kannst. 

Im nächsten Blogbeitrag zeige ich dir, wie du das Dokumentenlayout von Galaxus 1:1 in Odoo aufbauen kannst, damit deine Dokumente genauso gut aussehen wie die von Galaxus. Also, stay tuned 😊

Falls du noch Fragen hast, hinterlasse gerne einen Kommentar oder schreibe mir eine E-Mail.

Nathanael Lee

«Powered by Odoo» einfach entfernen
Die «Powered by Odoo»-Signatur erscheint in allen Odoo-E-Mails und Portalansichten. Hier zeige ich dir, wie du sie – unabhängig von deiner Hosting-Methode – einfach und sicher entfernst.