カスタムレポート¶
Odooには強力で使いやすいレポートフレームワークが搭載されています。このエンジンにより、税務レポート や 貸借対照表、損益計算書 などの新しいレポートを、特定のグルーピング や レイアウト で作成することができます。
重要
会計レポート作成インターフェースにアクセスするには、開発者モード <developer-mode>を有効にします。
新しいレポートを作成するには、 ルートレポート または バリアント を作成することができます。
にアクセスして下さい。ここから
ルートレポート¶
ルートレポートは、一般的で中立的な会計レポートとみなすことができます。ルートレポートは、ローカル会計バージョンを構築するためのモデルとして機能します。レポートにルートレポートがない場合、それ自体がルートレポートであると見なされます。
Example
ベルギーとアメリカの税レポートは、同じ一般的なバージョンをベースにして、それぞれの国内規制に合わせることになります。
新しいルートレポートを作成する場合、そのレポートの メニュー項目 を作成する必要があります。そのためには、レポートを開き、同じレポートで
をクリックします。ページをリフレッシュすると、そのレポートは で利用できるようになります。注釈
新しいルートレポートを作成する必要があるケースは、その国の税務当局が新しい特定のタイプのレポートを要求する場合など、稀です。

バリアント¶
バリアントはルートレポートの国別バージョンであるため、常にルートレポートを参照します。バリアントを作成するには、新しいレポートを作成する際に ルートレポート フィールドで汎用(ルート)レポートを選択して下さい。
ルートレポートが会計アプリのメインメニューの一つから開かれると、その全てのバリアントがビューの右上隅にあるバリアントセレクタに表示されます。
Example
以下の画像では、VATレポート(BE) がルート 汎用税レポート のバリアントです。

行¶
レポート (ルートまたはバリアント) を作成したら、そのレポートに明細を記入する必要があります。明細の追加 をクリックして新しい明細を作成するか、既存の明細をクリックして変更することができます。全ての明細には 名前 が必要であり、その値を数式で使用したい場合は、オプションで (自分で選択した) コード を追加することができます。

式¶
各明細には1つまたは複数の 式 を含めることができます。式はレポート明細が必要とする サブ変数 と見なすことができます。式を作成するには、明細追加 をクリックして下さい。
式を作成する際には、その式を参照するための ラベル に属性を指定する必要があります。そのため、各明細の式は 一意 である必要があります。また、 計算エンジン と 式 の両方を指定しなければなりません。エンジン は、式(複数可) と サブ計算式(複数可) の意味を定義します。必要であれば、同じ明細の中で異なる計算エンジンを使った式を混在させることができます。
注釈
エンジンによっては、サブ式 も必要な場合があります。
'Odooドメイン' エンジン¶
このエンジンでは、数式は Odooドメイン と解釈され、account.move.line
オブジェクトを対象とします。
このサブ計算式によって、ドメインに一致する仕訳明細をどのように使って式の値を計算するかを定義することができます:
sum
一致した仕訳明細の全残高の合計です。
sum_if_pos
一致した仕訳明細の残高の合計です。そうでなければ
0
です。sum_if_neg
金額が負であれば、結果は一致した仕訳明細の残高の合計となります。そうでなければ
0
です。count_rows
結果は、この式の部分明細の数です。親明細がgroup-by値を持つ場合、これは、一致した移動明細に含まれる別個のグループ化キーの数に相当します。それ以外の場合は、一致した移動明細の数となります。
また、サブ計算式の先頭に -
記号を付けると、結果の符号を 反転 させることができます。

'その他の計算式の集計'エンジン¶
このエンジンは、他の式で得られた金額に対して算術演算を実行する必要がある場合に使用します。式は基本的な四則演算子(加算 +
、減算 -
、除算 /
、乗算 *
)で区切られた式への参照で構成されます。式を参照するには、親行の code の後にピリオド .
と式の label を入力します(例:code.label)。
サブ式 は以下の1つであることが可能です:
if_above(CUR(amount))
算術式の値は、指定された境界よりも大きい場合にのみ返されます。そうでなければ、結果は
0
となります。if_below(CUR(amount))
算術式の値は、指定された境界よりも小さい場合にのみ返されます。そうでなければ、結果は
0
となります。if_between(CUR1(amount1), CUR2(amount2))
算術式の値は、指定された境界の間に厳密に入っている場合のみ返される。そうでない場合は、最も近い境界に戻されます。
if_other_expr_above(LINE_CODE.EXPRESSION_LABEL, CUR(amount))
算術式の値は、指定された行コードと数式ラベルで示される式の値が、指定された境界よりも大きい場合にのみ返されます。そうでなければ、結果は
0
となります。if_other_expr_below(LINE_CODE.EXPRESSION_LABEL, CUR(amount))
算術式の値は、指定された明細コードと式ラベルで示される式の値が、指定された境界よりも小さい場合にのみ返されます。そうでなければ、結果は
0
となります。
CUR`は大文字の通貨コードで、`金額`はその通貨で表示された限界額です。
また、cross_report
サブ計算式を使用して、別のレポートにある式に一致させることもできます。
'勘定コードのプレフィックス'エンジン¶
このエンジンは、勘定科目コードのプレフィックスを算術式の変数として使用し、勘定科目の金額を照合するために使用されます。
Example
21
Example
21 + 10 - 5
21
と 10
で始まる勘定科目の仕訳明細の残高を加算し、プレフィクスが 5
の勘定科目の仕訳明細の残高を減算します。サブプレフィックスの選択を無視することも可能です。
Example
21 + 10\(101, 102) - 5\(57)
102
、57
は無視されます。You can apply 'sub-filtering' on credits and debits using the C
and D
suffixes. In this
case, an account will only be considered if its prefix matches, and if the total balance of the
move lines made on this account is credit/debit.
Example
勘定科目 210001
の残高は -42 で、勘定科目 210002
の残高は25です。数式 21D
は勘定科目 210002
にのみマッチし、したがって25を返します。210001
は残高が 貸方 であるため、参照されません。
プレフィクスの除外はサフィックスの C
や D
と混ぜることができます。
Example
21D + 10\(101, 102)C - 5\(57)
D
)の 場合 は 21
、貸方(C
)の 場合 は 10
で始まる勘定科目の残高を足し合わせますが、プレフィックス 101
、102
は無視し、プレフィックス 57
は無視してプレフィックス 5
で始まる勘定科目の残高を引きます。プレフィクスの C
または D
に一致し、サフィックスとして使用しない場合は、空の除外文字 ()
を使用します。
Example
21D\()
21D
で始まる勘定科目に一致します。コードプレフィクスを使って勘定科目を含めるだけでなく、勘定科目タグ で一致させることもできます。これは、例えば、あなたの国に標準化された勘定科目表がなく、同じプレフィクスが企業間で異なる目的で使用される可能性がある場合に特に便利です。
Example
tag(25)
参照するタグがデータファイルで定義されている場合は、idの代わりにxmlidを使うことができます。
Example
tag(my_module.my_tag)
また、タグに算術式を使うこともでき、プレフィクス選択と組合わせることもできます。
Example
tag(my_module.my_tag) + tag(42) + 10
10
の勘定科目の残高と合計されます。`C`と`D`のサフィックスもタグと同じように使うことができます。
Example
tag(my_module.my_tag)C
プレフィクスの除外はタグでも機能します。
Example
tag(my_module.my_tag)\(10)
10
で始まらないコードを持つ勘定科目に一致します。'外部値' エンジン¶
'外部値' エンジンは、手動値 および 繰越値 を参照するために使用されます。これらの値は account.move.line
ではなく、account.report.external.value
で保存されます。これらのオブジェクトはそれぞれ、それが影響を与える式を直接指しているので、ここで選択することはあまりありません。
式 は以下のいずれかになります:
sum
その結果が、その期間内の全ての外部値の合計でなければならない場合。
most_recent
その結果が、その期間の最新の外部値の値でなければならない場合。
さらに、サブ計算式 は2つの方法で使用することができます:
rounding=X
X
を数字に置き換えると、X桁に丸めることを指示します。editable
この式を手動で編集できることを示し、レポートにアイコンを表示して、ユーザがこの操作を実行できるようにします。
注釈
手動値は、現在レポートで選択されている date_to
で作成されます。
どちらのサブ計算式も ;
で区切ることで混在させることができます。
Example
editable;rounding=2
'カスタムPython関数' エンジン¶
このエンジンは、開発者がケースバイケースで式のカスタム計算を導入するための手段です。式は呼び出す python 関数 の名前であり、サブ計算式はこの関数が返す 辞書 から取り出す キー です。独自のカスタムモジュールを作成する場合にのみ使用して下さい。
カラム¶
レポートには、不明な数 の列が表示される場合があります。各列は 行 で明示された 式 から値を得ます。列の expression_label フィールドは、値が表示される式のラベルを表示します。そのフィールドに 式 がない行がある場合、この列には何も表示されません。 複数の列が必要な場合は、異なる 式 ラベルを使用する必要があります。

会計レポートの オプション タブにある 期間比較 機能を使用すると、全ての列が各期間で繰返されます。