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, Bilanzen und Gewinn- und Verlustrechnung mit spezifischen Gruppierungen und Layouts.
Wichtig
Aktivieren Sie den Entwicklermodus, um auf die Konfiguration des Buchhaltungsberichts zuzugreifen.
Um einen neuen Bericht zu erstellen, gehen Sie zu . Erstellen Sie hier entweder einen Stammbericht oder eine Variante.
Tipp
Erwägen Sie, geänderte Berichte als Berichtsvarianten zu speichern, um die ursprünglichen Berichte unverändert zu lassen.
Um die Verwaltungsschnittstelle eines bestehenden Berichts direkt aus dem Bericht selbst aufzurufen, klicken Sie bitte auf das Symbol (Zahnräder).
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.
Um auf einen neuen Stammbericht zugreifen zu können, muss ein Menüpunkt erstellt werden. Öffnen Sie dazu die Konfiguration des Berichts, klicken Sie auf Aktion, Menüpunkt erstellen und 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 über das Menü Berichtswesen der Buchhaltungsapp geöffnet wird, werden alle seine Varianten in der Berichtsvariantenauswahl in der oberen rechten Ecke der Ansicht angezeigt.
Example
MwSt.-Bericht (BE) ist eine Variante des Stammberichts Generischer Steuerbericht.
Zeilen¶
Nachdem Sie einen Bericht (Stamm oder Variante) erstellt haben, müssen Sie im nächsten Schritt Zeilen hinzufügen. Um eine neue Zeile zu erstellen, klicken Sie auf Zeile hinzufügen. Um eine vorhandene Zeile zu ändern, klicken Sie auf die Zeile selbst und bearbeiten Sie das Pop-up-Fenster. Alle Zeilen erfordern einen Namen und können optional einen Code haben, der die Verwendung des Zeilenwerts in Formeln ermöglicht.
Ausdrücke¶
Jede Zeile kann einen oder mehrere Ausdrücke enthalten. Ausdrücke können als Untervariablen betrachtet werden, die für eine Berichtszeile erforderlich sind. Um einen Ausdruck zu erstellen, klicken Sie bitte auf Zeile hinzufügen innerhalb des Pop-up-Fensters einer Zeile.
Beim Erstellen eines Ausdrucks müssen Sie eine Bezeichnung eingeben, die zur Referenzierung dieses Ausdrucks verwendet wird. Die Bezeichnung muss unter den Ausdrücken jeder Berichtszeile eindeutig sein. Die Felder Berechnungsmaschine und Formel müssen ebenfalls ausgefüllt werden. Die Berechnungsmaschine definiert, wie die Formel(n) und Unterformel(n) interpretiert werden. Bei Bedarf können Ausdrücke mit unterschiedlichen Berechnungsmaschinen in derselben Zeile gemischt werden.
Bemerkung
Je nach Maschine können auch Unterformeln erforderlich sein.
Berechnungsmaschine für Odoo-Domains¶
Bei Verwendung der Berechnungsmaschine Odoo Domain wird eine Formel als Odoo-Domain interpretiert, die auf Objekte vom Typ account.move.line abzielt.
Mit der Unterformel können Sie festlegen, wie die Buchungszeilen, die dem Bereich entsprechen, zur Berechnung des Wertes des Ausdrucks verwendet werden:
sumDas Ergebnis ist die Summe aller Salden der übereinstimmenden Buchungszeilen.
sum_if_posDas Ergebnis ist die Summe aller Salden der übereinstimmenden Buchungszeilen, wenn dieser Betrag positiv ist. Andernfalls ist es
0.sum_if_negDas Ergebnis ist die Summe aller Salden der übereinstimmenden Buchungszeilen, wenn dieser Betrag negativ ist. Andernfalls ist es
0.count_rowsDas Ergebnis ist die Anzahl der Unterzeilen dieses Ausdrucks. Wenn die übergeordnete Zeile einen Gruppierungswert hat, entspricht dies der Anzahl der eindeutigen Gruppierungsschlüssel in den übereinstimmenden Buchungszeilen. Andernfalls ist es die Anzahl der übereinstimmenden Buchungszeilen.
Tipp
Um das Vorzeichen des Ergebnisses umzukehren, setzen Sie ein Zeichen - an den Anfang der Unterformel.
Berechnungsmaschine „Andere Formeln zusammenführen“¶
Die Berechnungsmaschine Andere Formeln zusammenführen führt arithmetische Operationen mit den aus anderen Ausdrücken erhaltenen Beträgen durch. Die Formeln bestehen hier 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 gefolgt von einem Punkt . und der Bezeichnung des Ausdrucks ein (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.
Berechnungsmaschine „Präfix der Kontocodes”¶
Die Berechnungsmaschine Präfix der Kontocodes wird verwendet, um Beträge auf Konten abzugleichen, wobei die Präfixe der Kontocodes als Variablen in einem arithmetischen Ausdruck verwendet werden.
Example
21Example
21 + 10 - 521 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 XML-ID 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) + 1010 verbunden sind.Die Suffixe C und D können genauso mit Stichwörtern verwendet werden.
Example
tag(my_module.my_tag)CPräfix-Ausschluss funktioniert auch mit Stichwörtern.
Example
tag(my_module.my_tag)\(10)10 beginnt.Berechnungsmaschine „Externer Wert“¶
Die Berechnungsmaschine Externer Wert wird verwendet, um auf manuelle und übertragene Werte zu verweisen. Diese Werte werden nicht mit account.move.line gespeichert, sondern mit account.report.external.value. Jedes dieser Objekte verweist direkt auf den Ausdruck, auf den es sich auswirkt, sodass hier nur sehr wenig hinsichtlich ihrer Auswahl unternommen werden muss.
Formeln können folgende sein:
sumWenn das Ergebnis die Summe aller externen Werte in der Periode sein muss.
most_recentWenn 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=XWenn Sie
Xdurch eine Zahl ersetzen, wird der Betrag auf X Dezimalstellen gerundet.editableZeigt 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=2Berechnungsmaschine „Benutzerdefinierte Python-Funktion“¶
Die Berechnungsmaschine Custom Python Function ermöglicht es Entwicklern, benutzerdefinierte Berechnungen von Ausdrücken auf Einzelfallbasis einzuführen. Die Formel ist der Name einer aufzurufenden Python-Funktion, und die Unterformel ist ein Schlüssel zum Abrufen des von dieser Funktion zurückgegebenen Dictionary. Verwenden Sie diese Berechnungsmaschine nur, wenn Sie ein benutzerdefiniertes 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.
Zeilengruppierung¶
Eine nicht standardmäßige Gruppierung ist möglich, indem Sie Felder zum Modell Journalbuchung hinzufügen oder vorhandene Felder verwenden, vorausgesetzt, sie sind miteinander verknüpft und nicht gespeichert.
Bemerkung
Für die Gruppierung von Zeilen muss der Bericht explizite Berichtszeilen enthalten, die bearbeitet werden können. Die zurückgestellten Berichte unterstützen beispielsweise keine Gruppierung von Zeilen, da sie dynamische Zeilen verwenden, die generiert werden.
Neues Feld in Journalbuchung erstellen¶
Um ein nicht gespeichertes, verwandtes Feld im Modell Journalbuchung zu erstellen, gehen Sie zunächst zu , klicken Sie auf das Symbol (Fehler) und dann auf Felder. Klicken Sie auf Neu, um ein neues Feld zu erstellen, und füllen Sie die folgenden Felder aus:
Feldname: ein technischer Name für das Feld
Feldbezeichnung: die Bezeichnung, die für das Feld angezeigt werden soll
Feldtyp: der Typ des Feldes, auf das dieses verwandte Feld verweisen soll
Gespeichert: Lassen Sie dieses Feld deaktiviert, da nur nicht gespeicherte Felder für die Zeilengrupierung verwendet werden können.
Zugehöriges Modell: Wenn der Feldtyp one2many, many2many oder many2one ist, wählen Sie das Modell des ursprünglichen Feldes aus, nach dem gruppiert werden soll.
Definition des Bezugsfelds: der technische Pfad zu dem Feld, nach dem Sie gruppieren möchten
Example
Um nach dem Verkaufsteam des Geschäftspartners zu gruppieren, setzen Sie die Definition des zugehörigen Feldes auf
move_id.team_id.
Zeilen gruppieren¶
Um Zeilen zu gruppieren, gehen Sie zum Reiter Zeilen des gewünschten Berichts, klicken Sie auf die Zeile, die Sie gruppieren möchten, und bearbeiten Sie das Feld Gruppieren nach. Geben Sie den technischen Namen (Feldname) des Feldes ein, das als Gruppierungsschlüssel verwendet werden soll.
Tipp
Eine Liste aller Felder des Modells und ihrer technischen Namen finden Sie unter . Klicken Sie dort auf das Symbol (Fehler) und anschließend auf Felder. Der technische Name jedes Feldes ist in der Spalte Feldname aufgeführt.