PDF-Berichte¶
Mit Studio können Sie vorhandene PDF-Berichte (z. B. Rechnungen, Angebote usw.) bearbeiten oder neue Berichte erstellen.
Standardlayout¶
Das Standardlayout der Berichte wird außerhalb von Studio verwaltet. Gehen Sie zu Unternehmen der Hauptseite und klicken Sie auf Dokumentlayout konfigurieren. Die Layouteinstellungen gelten für alle Berichte, aber nur für das aktuelle Unternehmen.
zum AbschnittTipp
Wie sich die verschiedenen Einstellungen auf das Berichtslayout auswirken, können Sie in der Berichtsvorschau auf der rechten Seite des Fensters Dokumentenlayout konfigurieren sehen. Wenn Sie einen Bericht erstellen oder bearbeiten, können Sie eine Vorschau des Berichts anzeigen, indem Sie links auf dem Bildschirm auf Druckvorschau klicken.
Verwenden Sie folgende Einstellungen:
Layout: Es stehen sieben Layouts zur Verfügung:
Hintegrund: Folgende Hintergründe sind verfügbar:
Leer: Nichts wird angezeigt.
Demologo: Ein Demologo wird im Hintergrund angezeigt.
Benutzerdefiniert: Laden Sie ein benutzerdefiniertes Hintergrundbild hoch.
Text: Es sind acht Schriftarten verfügbar: Lato, Roboto, Open Sans, Montserrat, Oswald, Raleway, Tajawal (die arabische und lateinische Schriftarten unterstützt) und Fira Mono. Gehen Sie auf die Google-Fonts-Website, um eine Vorschau zu sehen.
Unternehmenslogo: Klicken Sie auf die Schaltfläche Bearbeiten, um das Logo hochzuladen oder zu ändern. Dadurch wird das Logo dem Datensatz des Unternehmens im Unternehmensmodell hinzugefügt, auf das Sie zugreifen können, indem Sie auf und dann im Abschnitt Unternehmen auf Info aktualisieren klicken.
Farben: Ändern Sie die in den Berichten verwendeten Primär- und Sekundärfarben, um Berichte zu strukturieren. Die Standardfarben werden automatisch auf der Grundlage der Farben des Logos generiert.
Adresse: Der Name und die Adresse des Unternehmens werden in der Kopfzeile von externen Berichten angezeigt. Sie können mehrere Textzeilen hinzufügen.
Slogan: Er wird in der Kopfzeile von externen Berichten mit den Layouts Light, Striped, Bubble, Wave und Folder und in der Fußzeile von externen Berichten mit den Layout Boxed und Bold angezeigt. Sie können mehrere Textzeilen hinzufügen.
Papierformat: Dieses Feld legt das Standardpapierformat für Berichte fest. Sie können A4 (21 cm x 29,7 cm) und US Letter (21,59 cm x 27,54 cm) wählen. Dies kann auch für einzelne Berichte im Feld Papierformat in Studio definiert werden.
Bemerkung
Je nachdem, welche Apps oder Module Sie installiert haben, stehen möglicherweise auch andere Papierformate zur Verfügung, z. B. Etikettenbögen für die Lagerapp oder Veranstaltungsausweise für die Veranstaltungsapp.
Neue PDF-Berichte erstellen¶
Um einen neuen Bericht für ein Modell (z. B. Verkaufsaufträge) zu erstellen, rufen Sie das Modell auf, klicken auf die Schaltfläche (Studio ein/aus) und dann auf Berichte. Klicken Sie auf Neu und wählen Sie in dem sich öffnenden Pop-up-Fenster die Art des Berichts aus. Damit bestimmen Sie lediglich, was in der Kopf- und Fußzeile angezeigt wird:
Sobald Sie den Bericht erstellt haben, können Sie mit der Bearbeitung loslegen.
PDF-Berichte bearbeiten¶
Um auf die für ein Modell verfügbaren Berichte zuzugreifen, rufen Sie das Modell auf, klicken Sie auf die Schaltfläche (Studio ein/aus) und dann auf Berichte. Wählen Sie einen vorhandenen Bericht aus, um ihn zu öffnen.
Alternativ können Sie auch Studio öffnen und auf Berichte klicken und nach einem bestimmten Bericht oder Modell suchen.
Wichtig
Es wird dringend empfohlen, den Standardbericht zu duplizieren und Änderungen in der duplizierten Version vorzunehmen. Um einen Bericht zu duplizieren, bewegen Sie den Mauszeiger auf die obere rechte Ecke des Berichts, klicken auf das Symbol (vertikale Ellipse) und wählen dann Duplizieren.

Optionen¶
Wenn Sie einen Bericht ausgewählt oder erstellt haben, können Sie die Optionen links im Bildschirm verwenden, um:
Den Berichtnamen zu ändern. Der neue Name wird überall übernommen (in Studio, im Menü Drucken unter dem Symbol (Zahnrad) in der Formularansicht und im Namen der PDF-Datei).
Ändern Sie das Papierformat: Wenn kein Wert ausgewählt wird, wird das in der Standardlayout definierte Format verwendet.
Im Druckmenü anzeigen: Um den Bericht in das Menü Drucken in der Formularansicht aufzunehmen.
Erneut aus Anhang laden: um den Bericht bei der ersten Erstellung als Anhang im Datensatz zu speichern und die ursprüngliche Version des Berichts bei jeder weiteren Erstellung erneut zu laden. Dies ist für Rechnungen gesetzlich vorgeschrieben und wird hauptsächlich in diesem Fall verwendet.
Sichtbarkeit auf Gruppen beschränken: um die Verfügbarkeit des PDF-Berichts auf bestimmte Benutzergruppen zu beschränken.
Quellen bearbeiten: um den Bericht direkt in der XML-Datei zu ändern.
Bericht zurücksetzen: um alle Änderungen an dem Bericht zu verwerfen und ihn auf seine Standardversion zurückzusetzen.
Vorschau drucken: um eine Berichtsvorschau zu generieren und herunterzuladen.
Berichtseditor¶
Der Berichtseditor ermöglicht es Ihnen, die Formatierung und Inhalte des Berichts zu ändern.
Tipp
Sie können Änderungen Rückgängig machen oder Wiederholen mit den entsprechenden Schaltflächen oder den Tastenkombinationen
STRG
+Z
undSTRG
+Y
ändern.Änderungen werden automatisch gespeichert, wenn Sie den Bericht verlassen oder manuell über die Speichern-Schaltfläche.
Sie können den Bericht auf seine Standardversion zurücksetzen, indem Sie links auf dem Bildschirm auf Bericht zurücksetzen drücken.
Wichtig
Die Bearbeitung der Kopf- und Fußzeiel eines Berichts bestrifft alle Standard- und benutzerdefinierten Berichte.
Bedingte Blöcke¶
Die gestrichelten Rechtecke stellen Bedingte Blöcke (if/else-Anweisungen) dar. Diese werden verwendet, um Inhalte auf der Grundlage bestimmter Bedingungen anzuzeigen/auszublenden. Klicken Sie auf den Block, um die Bedingungen anzuzeigen.

Wählen Sie eine Wert aus, um eine Vorschau des Endresulats zu sehen und gegebenenfalls zu bearbeiten.

Bemerkung
Bedingungen können in XML bearbeitet werden.
Anderer Inhalt¶
Es gibt zwei Arten von Textinhalten in Berichten:
Statischer Text, d. h. der Text der nicht in Blau dargestellt wird, der direkt im Editor bearbeitet werden kann.
Dynamischer Text, d. h. der Text, der in Blau dargestellt wird, der durch Feldwerte ersetzt werden kann, wenn der Bericht generiert wird, z. B. die Auftragsnummer oder das Angebotsdatum
Sie können Inhalt (z. B. Felder, Listen, Tabellen, Bilder, Banner usw.) mittels Befehle zum Bericht hinzufügen. Geben Sie /
ein, um die Powerbox zu öffnen, geben Sie dann den Namen des Befehls ein oder wählen Sie ihn aus der Liste aus.
Um dem Bericht statischen Text hinzuzufügen, geben Sie den gewünschten Text ein
Für weitere Änderungen können Sie den Bericht direkt in der XML bearbeiten.
Ein Feld hinzufügen¶
Um ein Feld hinzuzufügen, geben Sie /
ein und wählen den Befehl Feld. In der sich öffnenden Liste wählen Sie das Feld aus oder suchen es. Klicken Sie auf den Pfeil nach rechts neben dem Feldnamen, um bei Bedarf die Liste der verwandten Felder aufzurufen. Geben Sie dann den Standardwert an, der angezeigt wird, wenn das Feld nicht im Datensatz vervollständigt wurde, und drücken Sie Enter
.

Eine Tabelle hinzufügen oder bearbeiten¶
Es gibt zwei Arten von Tabellen in Berichten:
Statische Tabellen, die verwendet werden, um statische Texte oder Felder anzuzeigen. Legen Sie für die Art Tabelle die Anzahl Spalten und Zeilen fest, wenn Sie die Tabelle hinzufügen.
Dynamische Tabellen, die verwendet werden, um Daten aus relationalen Feldern anzuzeigen. Bei dieser Art von Tabelle definieren Sie die Anzahl der Spalten nur beim Hinzufügen der Tabelle. Die Anzahl der Zeilen im generierten Bericht wird durch die Anzahl der Datensätze im zugehörigen Modell bestimmt, die mit dem aktuellen Modell verknüpft sind.
Example
In einem Verkaufsauftrag wird eine dynamische Tabelle verwendet, um die mit dem Verkaufsauftrag verbundenen Auftragspositionen anzuzeigen. Wenn der Verkaufsauftrag 10 Auftragspositionen enthält, hat die Tabelle im generierten Bericht 10 Zeilen; wenn er zwei Auftragspositionen enthält, hat die Tabelle zwei Zeilen.
Eine statische Tabelle hinzufügen oder bearbeiten¶
Um eine statische Tabelle hinzuzufügen, geben Sie /
ein und wählen Sie den Befehl Tabelle aus. Legen Sie die Anzahl der Spalten und Zeilen für die Tabelle fest. Sobald die Tabelle hinzugefügt wurde, können Sie mit der Bearbeitung beginnen.
Mit den Tabellentools können Sie Spalten und Zeilen einfügen, verschieben und löschen. Positionieren Sie den Mauszeiger über der Spalte oder links neben der Zeile, klicken Sie auf das violette Rechteck und wählen Sie eine Option aus.

Um die Größe einer Spalte zu ändern, ziehen Sie den Spaltenrand an die gewünschte Position. Setzen Sie alle Spalten auf ihre Standardgröße zurück, indem Sie in den Tabellentools die Option Größe zurücksetzen auswählen.
Fügen Sie das Feld Ihrer Wahl in eine Zelle ein oder fügen Sie statischen Text durch Tippen hinzu.
Tipp
Um Text strukturiert und ohne Verwendung einer Tabelle hinzuzufügen, können Sie Spalten verwenden. Fügen Sie Spalten hinzu, indem Sie /
eingeben und den entsprechenden Befehl auswählen: 2 Spalten, 3 Spalten oder 4 Spalten.
Dynamische Tabelle hinzufügen oder bearbeiten¶
Bemerkung
Nur Beziehungen vom Typ
one2many
odermany2many
können als dynamische Tabellen angezeigt werden.Eine in einem Standardbericht vorhandene dynamische Tabelle hat eine komplexere Struktur als eine von Ihnen selbst hinzugefügte dynamische Tabelle. Bei solchen Tabellen können Spalten eingefügt oder gelöscht werden. Es ist jedoch nicht möglich, Spalten zu verschieben oder Zeilen einzufügen, zu verschieben oder zu löschen.
Um eine dynamische Tabelle hinzuzufügen, geben Sie /
ein und wählen Sie den Befehl Dynamische Tabelle aus. Wählen Sie in der sich öffnenden Liste die Beziehung aus, auf der die Tabelle basieren soll, oder suchen Sie danach, und drücken Sie Enter
. Sobald die Tabelle hinzugefügt wurde, können Sie mit der Bearbeitung beginnen.
Mit den Tabellentools können Sie Spalten einfügen, verschieben und löschen, wie bei einer statischen Tabelle. Es ist auch möglich, statische Zeilen einzufügen, die über oder unter den generierten Zeilen angezeigt werden.
Um einer Zelle ein Feld hinzuzufügen, löschen Sie jeglichen Platzhaltertext und fügen Sie dann das Feld Ihrer Wahl hinzu. Das sich öffnende Dialogfeld zeigt das Quellobjekt für das Feld (z. B. das Modell Aufttragszeilen) und die Liste der verfügbaren Felder an.

Ersetzen Sie die Bezeichnung Spaltenname durch die Bezeichnung Ihrer Wahl.
Bemerkung
Die Standardzeile geht automatisch über den Inhalt des Feldes und erzeugt für jeden Feldwert eine Zeile im Bericht (z .B. eine Zeile pro Auftragszeile).
Formatierung¶
Um Text im Bericht zu formatieren, markieren Sie ihn und formatieren ihn dann mit den Optionen im Texteditor.
XML von Berichten bearbeiten¶
Warnung
Die direkte Bearbeitung der XML-Datei kann bei Upgrades zu Berichtsproblemen führen. Sollte dies der Fall sein, kopieren Sie einfach Ihre Änderungen aus der alten Datenbank in die aktualisierte Datenbank.
Um die XML des Berichts zu bearbeiten, klicken Sie links auf Quellen bearbeitens.
Beispiele¶
Um die Art, wie Daten in Ihrem Bericht angezeigt werden, zu ändern, können Sie das standardmäßige Widget eines Feldes manuell bearbeiten. Im unten stehenden Beispiel zeigt das Auftragsdatum das Datum und die Zeit standardmäßig an, während der Einheitspreis standardmäßig auf eine Dezimalzahl von 2 Stellen gestellt wird.
<div class="oe_structure"> <span t-field="doc.date_order"/> <span t-field="doc.price_unit"/> </div>
Durch die Verwendung von`t-options`, in diesem Fall die Option widget
, können diese Felder so geändert werden, dass nur das Datum und eine Dezimalzahl von vier Dezimalstellen angezeigt werden:
<div class="oe_structure"> <span t-field="doc.date_order" t-options="{'widget': 'date'}"/> <span t-field="doc.price_unit" t-options="{'widget': 'float', 'precision': 4}"/> </div>
Wenn Sie Inhalte auf der Grundlage bestimmter Bedingungen ein- oder ausblenden möchten, können Sie manuell „if/else“-Kontrollanweisungen in die Berichts-XML einfügen.
Wenn Sie zum Beispiel eine benutzerdefinierte Datentabelle ausblenden möchten, wenn keine Tags vorhanden sind, können Sie das Attribut t-if
verwenden, um die Bedingung zu definieren, die dann als True
oder False
ausgewertet wird. Die Tabelle wird nicht angezeigt, wenn keine Tags im Zitat vorhanden sind.
<!-- table root element -->
<table class="table" t-if="len(doc.tag_ids) > 0">
<!-- thead = table header, the row with column titles -->
<thead>
<!-- table row element -->
<tr>
<!-- table header element -->
<th>ID</th>
<th>Name</th>
</tr>
</thead>
<!-- table body, the main content -->
<tbody>
<!-- we create a row for each subrecord with t-foreach -->
<tr t-foreach="doc.tag_ids" t-as="tag">
<!-- for each line, we output the name and price as table cells -->
<td t-out="tag.id"/>
<td t-out="tag.name"/>
</tr>
</tbody>
</table>
Wenn Sie einen weiteren Block anzeigen möchten, falls die t-if
-Anweisung als False
ausgewertet wird, können Sie diesen mit der t-else
-Anweisung angeben. Der t-else
-Block muss in der Dokumentstruktur direkt auf den t-if
-Block folgen. Es ist nicht notwendig, eine Bedingung im Attribut t-else
anzugeben. Lassen Sie uns als Beispiel eine kurze Meldung anzeigen, die erklärt, dass es keine Tags im Zitat gibt:
<!-- table root element -->
<table class="table" t-if="len(doc.tag_ids) > 0">
<!-- thead = table header, the row with column titles -->
<thead>
<!-- table row element -->
<tr>
<!-- table header element -->
<th>ID</th>
<th>Name</th>
</tr>
</thead>
<!-- table body, the main content -->
<tbody>
<!-- we create a row for each subrecord with t-foreach -->
<tr t-foreach="doc.tag_ids" t-as="tag">
<!-- for each line, we output the name and price as table cells -->
<td t-out="tag.id"/>
<td t-out="tag.name"/>
</tr>
</tbody>
</table>
<div class="text-muted" t-else="">No tag present on this document.</div>
Durch die Verwendung der Notation t-if/t-else
erkennt der Berichtseditor, dass sich diese Abschnitte gegenseitig ausschließen und als bedingte Blöcke angezeigt werden sollten:

Sie können die Bedingungen mit dem Editor umschalten, um eine Vorschau ihres Resultat zu erhalten:

Wenn Sie mehrere Optionen haben möchten, können Sie auch t-elif
-Anweisungen verwenden, um Zwischenbedingungen hinzuzufügen. So ändert sich z. B. der Titel von Verkaufsauftragsberichten in Abhängigkeit von der Bedingung des zugrunde liegenden Dokuments.
<h2 class="mt-4">
<span t-if="env.context.get('proforma', False) or is_pro_forma">Pro-Forma Invoice # </span>
<span t-elif="doc.state in ['draft','sent']">Quotation # </span>
<span t-else="">Order # </span>
<span t-field="doc.name">SO0000</span>
</h2>
Der Titel Pro-Forma-Rechnung wird abhängig von einigen kontextuellen Bedingungen verwendet. Wenn diese Bedingungen nicht erfüllt sind und der Status des Dokuments entweder Entwurf
oder Gesendet
ist, wird Angebot verwendet. Wenn keine dieser Bedingungen erfüllt ist, lautet der Titel des Berichts Auftrag.
Die Arbeit mit Bildern in einem Bericht kann eine Herausforderung sein, da die genaue Steuerung von Bildgröße und -verhalten nicht immer offensichtlich ist. Sie können Bildfelder mit dem Berichtseditor einfügen (unter Verwendung des Feld-Befehls), aber das Einfügen in XML mit der t-field
-Anweisung und den dazugehörigen Attributen t-options
bietet eine bessere Kontrolle über Größe und Positionierung.
Der folgende Code gibt zum Beispiel das Feld Bild_128
des Produkts der Zeile als 64px breites Bild aus (mit einer automatischen Höhe, die auf dem Seitenverhältnis des Bildes basiert).
<span t-field="line.product_id.image_128" t-options-widget="image" t-options-width="64px"/>
Die folgenden Optionen sind für Bildwidgets verfügbar:
width
: Breite des Bildes, normalerweise in Pixeln oder CSS-Längeneinheiten (z. B.rem
) (für automatische Breite leer lassen).height
: Höhe des Bildes, in der Regel in Pixeln oder CSS-Längeneinheiten (z. B.rem
) (für automatische Höhe leer lassen).class
: CSS-Klassen, die auf denimg
-Tag angewendet werden; Bootstrap-Klassen sind verfügbar.alt
: alternativer Text des Bilds text of the imagestyle
: Stilattribut; ermöglicht Ihnen, Stile einfacher als mit Bootstrap-Klassen zu überschreiben.
Diese Attribute müssen Strings enthalten, d. h. Text, der in Anführungszeichen eingeschlossen ist, z. B. t-options-width="'64px'"
(oder alternativ einen gültigen Python-Ausdruck).
Bemerkung
Das Bildwidget kann nicht für ein img
-Tag verwendet werden. Setzen Sie stattdessen die t-field
-Anweisung auf einen span
- (für Inline-Inhalt) oder div
-Knoten (für Blockinhalt).
Fügen wir zum Beispiel eine Spalte mit dem Produktbild in die Angebotstabelle ein:
<table class="table table-sm o_main_table table-borderless mt-4">
<thead style="display: table-row-group">
<tr>
<th>Image</th>
<th name="th_description" class="text-start">Description</th>
<th>Product Category</th>
<th name="th_quantity" class="text-end">Quantity</th>
<th name="th_priceunit" class="text-end">Unit Price</th>
[...]
<t t-foreach="lines_to_report" t-as="line">
<t t-set="current_subtotal" t-value="current_subtotal + line.price_subtotal"/>
<tr t-att-class="'bg-200 fw-bold o_line_section' if line.display_type == 'line_section' else 'fst-italic o_line_note' if line.display_type == 'line_note' else ''">
<t t-if="not line.display_type">
<td>
<span t-field="line.product_template_id.image_128"
t-options-widget="'image'"
t-options-width="'64px'"
t-options-class="'rounded-3 shadow img-thumbnail'"
/>
</td>
<td name="td_name"><span t-field="line.name">Bacon Burger</span></td>
<td t-out="line.product_id.categ_id.display_name"/>
Das Attribut t-options-width
schränkt die Bildbreite auf 64 Pixel ein und die in t-options-class
verwendeten Bootstrap-Klassen erzeugen einen Rahmen, der Miniaturbildern ähnelt, mit abgerundeten Ecken und einem Schatten.
