コンテンツにスキップ

iDempiere 会計レポートの使い方|財務諸表 操作マニュアル・技術仕様

📖 会計管理の全体像: 会計管理の業務フロー全体図 も合わせてご覧ください。

会計レポートは、iDempiereの財務分析における中核機能です。損益計算書(P&L)、貸借対照表(B/S)、キャッシュフロー計算書などの財務諸表を柔軟に定義・出力できます。

📌 ポイント: 会計レポートは「列セット(何の期間を見るか)」と「行セット(どの勘定科目を集計するか)」の組み合わせで設計します。一度定義すれば毎月の財務諸表出力が数クリックで完了します。

会計レポートは「列セット」と「行セット」の組み合わせで構成されます。列セットで期間(当月、累計、予算等)を定義し、行セットで勘定科目の集計構造を定義することで、様々な切り口の財務分析が可能です。

  • 損益計算書(P&L)、貸借対照表(B/S)の出力
  • 予算と実績の比較レポート
  • 期間比較(前年同月比、前月比)
  • 部門別・プロジェクト別の損益分析
  • カスタム財務諸表の自由な設計
graph TD
    subgraph "Financial Report (Window 216) — シングルタブ"
        T1["📊 会計レポート<br/>PA_Report<br/>18項目"]
    end

Financial Report (Window 216) — シングルタブ 会計レポート PA_Report 18項目

💡 ヒント: 会計レポート自体はシングルタブのシンプルな画面です。列セット(PA_ReportColumnSet)と行セット(PA_ReportLineSet)は別ウィンドウで事前に定義しておく必要があります。

会計レポートはマスタ型のシングルタブ画面です。

項目テーブル役割
会計レポート定義PA_Reportレポート名、列セット、行セットの組み合わせ定義
graph TD
    A["🛠️ 事前準備: 列セットを定義<br/>(PA_ReportColumnSet)"] --> C
    B["🛠️ 事前準備: 行セットを定義<br/>(PA_ReportLineSet)"] --> C
    C["📊 会計レポートウィンドウで新規作成<br/>(名前・会計スキーマ・列セット・行セット)"] --> D["💾 保存"]
    D --> E["▶️ レポートボタンをクリック"]
    E --> F["📅 実行パラメータを入力<br/>(会計期間・組織)"]
    F --> G["✅ OKで出力"]
    G --> H{出力形式}
    H -->|画面| I["🖥️ 画面表示"]
    H -->|Excel| J["📊 XLSエクスポート"]
    H -->|PDF| K["📄 Jasperレポート"]

事前準備: 列セットを定義 (PA_ReportColumnSet) 事前準備: 行セットを定義 (PA_ReportLineSet) 会計レポートウィンドウで新規作成 (名前・会計スキーマ・列セット・行セット) 保存 ▶ レポートボタンをクリック 実行パラメータを入力 (会計期間・組織) OKで出力 画面表示 XLSエクスポート Jasperレポート 出力形式 画面

⚠️ 注意: 列セット・行セットを変更すると既存レポート定義の出力内容が変わります。本番用レポートの列セット・行セットを修正する際は事前にコピーを作成してください。

メニューから「会計・業績分析 > 財務レポート > 会計諸表」を開きます。

  1. ツールバーの「新規」ボタンをクリック
  2. レポート定義を入力:
    • 名前: レポートの名称(例: 「月次損益計算書」)
    • 説明: レポートの概要
    • 会計スキーマ: 対象の会計スキーマ
    • 行セット: 使用する行セット(勘定科目の集計定義)
    • 列セット: 使用する列セット(期間・金額タイプの定義)
    • 帳票フォーマット: 出力形式(任意)
  3. 保存」をクリック
  1. レポート定義を開いた状態で「レポート」ボタンをクリック
  2. 実行パラメータを入力:
    • 会計期間: 対象期間を選択
    • 組織: 対象組織(全社 or 特定部門)
  3. OK」をクリックしてレポートを出力
項目名必須説明
名前Yテキストレポートの名称
説明-テキストレポートの概要説明
会計スキーマY選択対象の会計スキーマ
行セットY選択PA_ReportLineSet(勘定科目の集計構造)
列セットY選択PA_ReportColumnSet(期間・金額タイプ)
帳票フォーマット-選択Jasper等の出力テンプレート
リスト元-リストソースの種類(会計、統計等)
リストタイプ-リスト表示タイプ(詳細、合計等)
graph TD
    A[会計レポート PA_Report] --> B[列セット PA_ReportColumnSet]
    A --> C[行セット PA_ReportLineSet]
    B --> D[列定義 PA_ReportColumn]
    C --> E[行定義 PA_ReportLine]
    E --> F[行ソース PA_ReportSource]
    F --> G[勘定科目 C_ElementValue]
    D --> H["期間タイプ(当期/累計/予算)"]

期間タイプ(当期/累計/予算) 会計レポート PA_Report 列セット PA_ReportColumnSet 行セット PA_ReportLineSet 列定義 PA_ReportColumn 行定義 PA_ReportLine 行ソース PA_ReportSource 勘定科目 C_ElementValue

勘定科目の集計構造を定義します。各行に勘定科目の範囲や計算式を設定できます。

行の種類説明
勘定科目指定特定の勘定科目の残高を表示売上高、仕入原価
合計行複数行の合計を計算売上総利益 = 売上高 - 仕入原価
セグメント指定組織やプロジェクトで絞り込み部門別損益

表示する期間や金額タイプを定義します。

列の種類説明
期間指定特定期間の残高当月、前月、前年同月
累計期首からの累計年度累計
予算予算金額当月予算
計算列間の計算予実差異 = 実績 - 予算

Q. 損益計算書と貸借対照表はどう作り分けますか?

Section titled “Q. 損益計算書と貸借対照表はどう作り分けますか?”

行セットで使用する勘定科目の範囲を変えます。損益計算書では収益・費用の勘定科目、貸借対照表では資産・負債・資本の勘定科目を行セットに設定します。

Q. 予算と実績の比較レポートを作るには?

Section titled “Q. 予算と実績の比較レポートを作るには?”

列セットに「実績」列と「予算」列を定義し、さらに「計算」列で差異(実績 - 予算)を追加します。予算データは別途「GL予算」機能で入力しておく必要があります。

レポート実行時に組織パラメータで特定部門を選択するか、行セットのセグメントフィルタで組織を指定します。

Q. レポートをExcelに出力できますか?

Section titled “Q. レポートをExcelに出力できますか?”

はい。レポート出力画面からXLS形式でエクスポートできます。Jasperレポートと連携すれば、PDF形式での出力も可能です。

graph TD
    A[GL仕訳] --> B[Fact_Acct]
    C[売上/仕入] --> B
    B --> D[会計レポート]
    D --> E[損益計算書]
    D --> F[貸借対照表]
    D --> G[予実比較表]

GL仕訳 売上/仕入 会計レポート 損益計算書 貸借対照表 予実比較表


iDempiereの会計レポート機能は、損益計算書や貸借対照表を自由に設計できる柔軟な財務分析ツールです。 日本の会計基準に合わせたカスタム財務諸表を、オープンソースERPで実現しませんか?

As-Link株式会社では、iDempiereの導入支援・カスタマイズ開発を承っております。

OSS ERP導入サービスの詳細はこちら


🛠 技術仕様(開発者向け)

会計レポートは PA_Report テーブルに定義され、MReport クラスで管理されます。レポートの実行は FinReport クラス(SvrProcess を継承)が担い、Fact_Acct(会計事実)テーブルから集計データを取得して財務諸表を生成します。

レポートは「列セットPA_ReportColumnSet)」と「行セットPA_ReportLineSet)」の組み合わせで構成される柔軟なアーキテクチャです。

classDiagram
    class MReport {
        -MReportColumnSet m_columnSet
        -MReportLineSet m_lineSet
        +getColumnSet() MReportColumnSet
        +getLineSet() MReportLineSet
    }
    class MReportColumnSet {
        -MReportColumn[] m_columns
        +getColumns() MReportColumn[]
    }
    class MReportLineSet {
        -MReportLine[] m_lines
        +getLines() MReportLine[]
    }
    class MReportColumn {
        <<column definition>>
    }
    class MReportLine {
        -MReportSource[] m_sources
        +getSources() MReportSource[]
    }
    class FinReport {
        <<SvrProcess>>
        +doIt() String
    }
    class FinReportJasper {
        <<extends FinReport>>
    }
    class X_PA_Report {
        <<generated>>
    }
    MReport --|> X_PA_Report
    MReport --> MReportColumnSet : has
    MReport --> MReportLineSet : has
    MReportColumnSet --> MReportColumn : has many
    MReportLineSet --> MReportLine : has many
    FinReport --> MReport : uses
    FinReportJasper --|> FinReport

-MReportColumnSet m_columnSet -MReportLineSet m_lineSet +getColumnSet() MReportColumnSet +getLineSet() MReportLineSet -MReportColumn[] m_columns +getColumns() MReportColumn[] -MReportLine[] m_lines +getLines() MReportLine[] <> -MReportSource[] m_sources +getSources() MReportSource[] <> +doIt() String <> <> > X_PA_Report MReport --> MReportColumnSet : has MReport --> MReportLineSet : has MReportColumnSet --> MReportColumn : has many MReportLineSet --> MReportLine : has many FinReport --> MReport : uses FinReportJasper --

パッケージ: org.compiere.report 主要ソースファイル:

  • org.adempiere.base/src/org/compiere/report/MReport.java
  • org.adempiere.base/src/org/compiere/report/MReportColumnSet.java
  • org.adempiere.base/src/org/compiere/report/MReportLineSet.java
  • org.adempiere.base/src/org/compiere/report/MReportColumn.java
  • org.adempiere.base/src/org/compiere/report/MReportLine.java
  • org.adempiere.base/src/org/compiere/report/FinReport.java
カラム名必須説明
PA_Report_IDIDPKレポートID
AD_Client_IDTableDirectYクライアント
AD_Org_IDTableDirectY組織
NameStringYレポート名
DescriptionStringN説明
C_AcctSchema_IDTableDirectY会計スキーマ
PA_ReportLineSet_IDTableDirectY行セット
PA_ReportColumnSet_IDTableDirectY列セット
AD_PrintFormat_IDTableDirectN帳票フォーマット
ListSourcesListNソース種類
ListTrxListN表示タイプ
erDiagram
    PA_Report }o--|| PA_ReportColumnSet : "uses"
    PA_Report }o--|| PA_ReportLineSet : "uses"
    PA_Report }o--|| C_AcctSchema : "references"
    PA_ReportColumnSet ||--o{ PA_ReportColumn : "has"
    PA_ReportLineSet ||--o{ PA_ReportLine : "has"
    PA_ReportLine ||--o{ PA_ReportSource : "has"
    PA_ReportSource }o--|| C_ElementValue : "references"
    PA_ReportColumn }o--o| C_ElementValue : "references"

PA_ReportColumn(列定義)の主要カラム

Section titled “PA_ReportColumn(列定義)の主要カラム”
カラム名説明
PA_ReportColumn_IDID列ID
NameString列名
ColumnTypeList列タイプ(相対期間/計算/セグメント値)
AmountTypeList金額タイプ(期間残高/年度残高等)
RelativePeriodNumber相対期間(0=当月, -1=前月)
PostingTypeList転記タイプ(実績/予算/統計)
CalculationTypeList計算方法(加算/減算/割合)
Oper_1_ID / Oper_2_IDTableDirect計算対象の列

PA_ReportLine(行定義)の主要カラム

Section titled “PA_ReportLine(行定義)の主要カラム”
カラム名説明
PA_ReportLine_IDID行ID
NameString行名
LineTypeList行タイプ(セグメント値/計算)
CalculationTypeList計算方法
IsPrintedYesNo印刷対象か
IsSummaryYesNo集計行か
SeqNoInteger表示順序

レポートエンジンの処理フロー

Section titled “レポートエンジンの処理フロー”
graph TD
    A[FinReport.doIt] --> B[MReport読込]
    B --> C[列セット/行セット取得]
    C --> D[期間パラメータ解決]
    D --> E[行ごとにFact_Acctを集計]
    E --> F[計算行の演算]
    F --> G[結果テーブル T_Report 格納]
    G --> H[帳票出力]

FinReport.doIt MReport読込 列セット/行セット取得 期間パラメータ解決 行ごとにFact_Acctを集計 計算行の演算 結果テーブル T_Report 格納 帳票出力

  1. PA_Report から列セット・行セットを読込
  2. 各列の RelativePeriod を実際の C_Period_ID に解決
  3. 行ごとに PA_ReportSource の勘定科目範囲で Fact_Acct を集計
  4. 計算タイプの行(合計行、差異行)を演算
  5. 結果を T_Report(一時テーブル)に格納
  6. AD_PrintFormat または Jasper テンプレートで帳票出力

拡張ポイント(カスタマイズ箇所)

Section titled “拡張ポイント(カスタマイズ箇所)”

レポート定義の保存時バリデーション:

public class CustomReportValidator implements ModelValidator {
@Override
public int modelChange(PO po, int type) throws Exception {
if (po instanceof MReport) {
MReport report = (MReport) po;
if (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE) {
// 例: 行セットと列セットの会計スキーマ整合性チェック
MReportLineSet lineSet = new MReportLineSet(
report.getCtx(),
report.getPA_ReportLineSet_ID(),
report.get_TrxName());
// カスタムバリデーション
}
}
return null;
}
}

FinReport を継承して独自の集計ロジックを追加:

public class CustomFinReport extends FinReport {
@Override
protected String doIt() throws Exception {
// 標準処理を実行
String result = super.doIt();
// 独自の後処理(例: 結果をCSVエクスポート)
return result;
}
}

iDempiereの会計レポートエンジンは、行セット・列セットの組み合わせで柔軟に財務諸表を設計できます。 日本の会計基準に合わせたカスタムレポートの開発も、コア改変なしで実現可能です。

As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。

OSS ERP導入・カスタマイズサービスの詳細はこちら