Benutzerdefinierte Berichte¶
Odoo verfügt über ein leistungsstarkes und benutzerfreundliches Framework für das Berichtswesen. Die Maschine ermöglicht es Ihnen, neue Berichte zu erstellen, wie z. B. Steuerberichte oder Bilanzen und Erfolgsrechnung mit spezifischen Gruppierungen und Layouts.
Wichtig
Aktivieren Sie den Entwicklermodus, um auf die Schnittstelle zur Erstellung von Buchhaltungsberichten zuzugreifen.
Um einen neuen Bericht zu erstellen, gehen Sie zu Stammbericht oder eine Variante erstellen.
. Von hier aus können Sie entweder einen
Stammberichte¶
Stammberichte können als allgemeine, neutrale Buchhaltungsberichte betrachtet werden. Sie dienen als Vorlage, auf der lokale Buchhaltungsversionen aufgebaut werden. Wenn ein Bericht keinen Stammbericht hat, wird er selbst als Stammbericht betrachtet.
Example
Steuerberichte für Belgien und die USA würden beide dieselbe generische Version als Grundlage verwenden und sie an ihre nationalen Vorschriften anpassen.
Wenn Sie einen neuen Stammbericht erstellen, müssen Sie dafür einen Menüpunkt erstellen. Öffnen Sie dazu den Bericht und klicken Sie dann im selben Bericht auf
. Aktualisieren Sie die Seite; der Bericht ist nun unter verfügbar.Bemerkung
Fälle, die die Erstellung eines neuen Stammberichts erfordern, sind selten, z. B. wenn die Steuerbehörden eines Landes eine neue und spezielle Art von Bericht verlangen.

Varianten¶
Varianten sind länderspezifische Versionen von Stammberichten und beziehen sich daher immer auf einen Stammbericht. Um eine Variante zu erstellen, wählen Sie bei der Erstellung eines neuen Berichts im Feld Stammbericht einen generischen (Stamm-)Bericht aus.
Wenn ein Stammbericht aus einem der Hauptmenüs der Buchhaltungsapp geöffnet wird, werden alle seine Varianten in der Variantenauswahl in der oberen rechten Ecke der Ansicht angezeigt.
Example
Im folgenden Bild ist der MwSt.-Bericht (BE) die Variante des Stammberichts Generischer MwSt.-Steuerbericht.

Zeilen¶
Nachdem Sie einen Bericht (entweder Stamm oder Variante) erstellt haben, müssen Sie ihn mit Zeilen füllen. Sie können entweder eine neue Zeile erstellen, indem Sie auf Zeile hinzufügen klicken, oder eine bestehende Zeile ändern, indem Sie auf sie klicken. Alle Zeilen erfordern einen Namen und können optional einen zusätzlichen Code (Ihrer Wahl) haben, wenn Sie deren Wert in Formeln verwenden möchten.

Ausdrücke¶
Jede Zeile kann einen oder mehrere Ausdrücke enthalten. Ausdrücke können als Untervariablen betrachtet werden, die in einer Berichtszeile benötigt werden. Um einen Ausdruck zu erstellen, klicken Sie innerhalb eines Zeilenberichts auf Zeile hinzufügen.
Wenn Sie einen Ausdruck erstellen, müssen Sie eine Bezeichnung zuweisen, die sich auf diesen Ausdruck bezieht. Es muss daher einzigartig für die Ausdrücke in jeder Zeile sein. Außerdem müssen sowohl ein Berechnungsmaschine als auch eine Formel angegeben werden. Die Maschine definiert, wie Ihre Formel(n) und Unterformel(n) interpretiert werden. Es ist möglich, Ausdrücke, die verschiedene Berechnungsprogramme verwenden, in derselben Zeile zu mischen, wenn Sie dies wünschen.
Bemerkung
Je nach Maschine können auch Unterformeln erforderlich sein.
Maschine ‚Odoo Bereich‘¶
Mit dieser Maschine wird eine Formel als Odoo-Bereich interpretiert, die auf account.move.line
-Objekte abzielt.
Mit der Unterformel können Sie festlegen, wie die Buchungszeilen, die dem Bereich entsprechen, zur Berechnung des Wertes des Ausdrucks verwendet werden:
sum
Das Ergebnis ist die Summe aller Salden der übereinstimmenden Buchungszeilen.
sum_if_pos
Das Ergebnis ist die Summe aller Salden der übereinstimmenden Buchungszeilen, wenn dieser Betrag positiv ist. Andernfalls ist es
0
.sum_if_neg
Das Ergebnis ist die Summe aller Salden der übereinstimmenden Buchungszeilen, wenn dieser Betrag negativ ist. Andernfalls ist es
0
.count_rows
Das Ergebnis ist die Anzahl der Unterzeilen dieses Ausdrucks. Wenn die übergeordnete Zeile einen „Group by“-Wert hat, entspricht dies der Anzahl der unterschiedlichen Gruppierungsschlüssel in den übereinstimmenden Buchungszeilen. Andernfalls ist es die Anzahl der übereinstimmenden Buchungszeilen.
Sie können auch ein -
-Zeichen an den Anfang der Unterformel setzen, um das Vorzeichen des Ergebnisses umzukehren.

Maschine „Andere Formeln zusammenführen“¶
Verwenden Sie diese Maschine, wenn Sie arithmetische Operationen mit den Beträgen anderer Ausdrücke durchführen müssen. Die Formeln hier bestehen aus Verweisen auf Ausdrücke, die durch einen der vier grundlegenden arithmetischen Operatoren (Addition +
, Subtraktion -
, Division /
und Multiplikation *
) getrennt sind. Um auf einen Ausdruck zu verweisen, geben Sie den Code der übergeordneten Zeile ein, gefolgt von einem Punkt .
und der Bezeichnung des Ausdrucks (z. B. Code.Label).
Unterformeln können folgende sein:
if_above(CUR(amount))
Der Wert des arithmetischen Ausdrucks wird nur zurückgegeben, wenn er größer als die angegebene Grenze ist. Andernfalls ist das Ergebnis
0
.if_below(CUR(amount))
Der Wert des arithmetischen Ausdrucks wird nur zurückgegeben, wenn er kleiner als die angegebene Grenze ist. Andernfalls ist das Ergebnis
0
.if_between(CUR1(amount1), CUR2(amount2))
Der Wert des arithmetischen Ausdrucks wird nur zurückgegeben, wenn er genau zwischen den angegebenen Grenzen liegt. Andernfalls wird der Wert auf die nächstgelegene Grenze zurückgesetzt.
if_other_expr_above(LINE_CODE.EXPRESSION_LABEL, CUR(amount))
Der Wert des arithmetischen Ausdrucks wird nur dann zurückgegeben, wenn der Wert des durch den angegebenen Zeilencode bezeichneten Ausdrucks und die Bezeichnung des Ausdrucks größer ist als die angegebene Grenze. Andernfalls ist das Ergebnis
0
.if_other_expr_below(LINE_CODE.EXPRESSION_LABEL, CUR(amount))
Der Wert des arithmetischen Ausdrucks wird nur dann zurückgegeben, wenn der Wert des durch den angegebenen Zeilencode bezeichneten Ausdrucks und die Bezeichnung des Ausdrucks kleiner ist als die angegebene Grenze. Andernfalls ist das Ergebnis
0
.
CUR
ist der Währungscode in Großbuchstaben, und Betrag
ist der in dieser Währung ausgedrückte Betrag der Grenze.
Sie können auch die Unterformel cross_report
verwenden, um einen Ausdruck in einem anderen Bericht zu finden.
Maschine „Präfix der Kontocodes“¶
Diese Maschine wird verwendet, um Beträge auf Konten abzugleichen, indem die Präfixe der Codes dieser Konten als Variablen in einem arithmetischen Ausdruck verwendet werden.
Example
21
Example
21 + 10 - 5
21
und 10
beginnen, und subtrahiert den Saldo derjenigen auf Konten mit dem Präfix 5
.Es ist auch möglich, eine Auswahl von Unterpräfixen zu ignorieren.
Example
21 + 10\(101, 102) - 5\(57)
101
, 102
und 57
.Sie können mit den Suffixen C
und D
eine „Unterfilterung“ auf Gutschriften und Lastschriften anwenden. In diesem Fall wird ein Konto nur dann berücksichtigt, wenn sein Präfix übereinstimmt und wenn der Gesamtsaldo der Buchungszeilen auf diesem Konto Haben/Soll ist.
Example
Das Konto 210001
hat einen Saldo von -42 und das Konto 210002
hat einen Saldo von 25. Die Formel 21D
passt nur auf das Konto 210002
und liefert daher 25. Das Konto 210001
wird nicht abgeglichen, da sein Saldo im Haben ist.
Präfix-Ausschlüsse können mit den Suffixen C
und D
gemischt werden.
Example
21D + 10\(101, 102)C - 5\(57)
21
beginnt, wenn es sich um ein Soll (D
) handelt, und 10
, wenn es sich um ein Haben (C
) handelt, ignoriert aber die Präfixe 101
, 102
und subtrahiert den Saldo derjenigen auf Konten mit dem Präfix 5
, wobei das Präfix 57
ignoriert wird.Um den Buchstaben C
oder D
in einem Präfix zu finden und ihn nicht als Suffix zu verwenden, verwenden Sie einen leeren Ausschluss ()
.
Example
21D\()
21D
beginnt, unabhängig vom Vorzeichen des Saldos.Sie können nicht nur Code-Präfixe verwenden, um Konten einzuschließen, sondern diese auch mit Konto-Stichwörtern abgleichen. Dies ist zum Beispiel besonders nützlich, wenn es in Ihrem Land keinen standardisierten Kontenplan gibt und dasselbe Präfix in verschiedenen Unternehmen für unterschiedliche Zwecke verwendet werden könnte.
Example
tag(25)
Wenn das Stichwort, auf das Sie verweisen, in einer Datendatei definiert ist, kann anstelle der ID eine xmlid verwendet werden.
Example
tag(my_module.my_tag)
Sie können auch arithmetische Ausdrücke mit Stichwörtern verwenden und diese möglicherweise mit Präfixen kombinieren.
Example
tag(my_module.my_tag) + tag(42) + 10
10
verbunden sind.Die Suffixe C
und D
können genauso mit Stichwörtern verwendet werden.
Example
tag(my_module.my_tag)C
Präfix-Ausschluss funktioniert auch mit Stichwörtern.
Example
tag(my_module.my_tag)\(10)
10
beginnt.Maschine „Externer Wert“¶
Die Maschine „Externer Wert“ wird verwendet, um sich auf manuelle und Übertragswerte zu beziehen. Diese Werte werden nicht mit account.move.line
, sondern mit account.report.external.value
gespeichert. Jedes dieser Objekte verweist direkt auf den Ausdruck, auf den es sich auswirkt, sodass hier nur sehr wenig für die Auswahl getan werden muss.
Formeln können folgende sein:
sum
Wenn das Ergebnis die Summe aller externen Werte in der Periode sein muss.
most_recent
Wenn das Ergebnis der Wert des letzten externen Wertes in der Periode sein muss.
Darüber hinaus können Unterformeln auf zwei Arten verwendet werden:
rounding=X
Wenn Sie
X
durch eine Zahl ersetzen, wird der Betrag auf X Dezimalstellen gerundet.editable
Zeigt an, dass dieser Ausdruck manuell bearbeitet werden kann, wodurch ein Symbol im Bericht angezeigt wird, das dem Benutzer die Durchführung dieser Aktion ermöglicht.
Bemerkung
Manuelle Werte werden zum aktuell im Bericht ausgewählten date_to
erstellt.
Beide Unterformeln können gemischt werden, indem Sie sie mit einem ;
trennen.
Example
editable;rounding=2
Maschine „Benutzerdefinierte Python-Funktion“¶
Diese Maschine bietet Entwicklern die Möglichkeit, von Fall zu Fall benutzerdefinierte Berechnungen von Ausdrücken einzuführen. Die Formel ist der Name einer Python-Funktion, die aufgerufen werden soll, und die Unterformel ist ein Schlüssel, der aus dem Verzeichnis geholt werden soll, das von dieser Funktion zurückgegeben wird. Verwenden Sie diese Funktion nur, wenn Sie ein eigenes Modul erstellen.
Spalten¶
Berichte können eine unbegrenzte Anzahl von Spalten enthalten. Jede Spalte erhält ihre Werte aus den Ausdrücken, die in den Zeilen angegeben sind. Das Feld expression_label der Spalte gibt die Bezeichnung der Ausdrücke an, deren Wert angezeigt wird. Wenn eine Zeile keinen Ausdruck in diesem Feld hat, wird für sie in dieser Spalte nichts angezeigt. Wenn mehrere Spalten erforderlich sind, müssen Sie verschiedene Ausdrucksbezeichnungen verwenden.

Wenn Sie die Funktion Periodenvergleich im Reiter Optionen eines Buchhaltungsberichts verwenden, werden alle Spalten in jeder und für jede Periode wiederholt.