iDempiere 会計レポートの使い方|財務諸表 操作マニュアル・技術仕様
📖 会計管理の全体像: 会計管理の業務フロー全体図 も合わせてご覧ください。
会計レポートは、iDempiereの財務分析における中核機能です。損益計算書(P&L)、貸借対照表(B/S)、キャッシュフロー計算書などの財務諸表を柔軟に定義・出力できます。
📌 ポイント: 会計レポートは「列セット(何の期間を見るか)」と「行セット(どの勘定科目を集計するか)」の組み合わせで設計します。一度定義すれば毎月の財務諸表出力が数クリックで完了します。
会計レポートは「列セット」と「行セット」の組み合わせで構成されます。列セットで期間(当月、累計、予算等)を定義し、行セットで勘定科目の集計構造を定義することで、様々な切り口の財務分析が可能です。
会計レポートでできること
Section titled “会計レポートでできること”- 損益計算書(P&L)、貸借対照表(B/S)の出力
- 予算と実績の比較レポート
- 期間比較(前年同月比、前月比)
- 部門別・プロジェクト別の損益分析
- カスタム財務諸表の自由な設計
graph TD
subgraph "Financial Report (Window 216) — シングルタブ"
T1["📊 会計レポート<br/>PA_Report<br/>18項目"]
end
💡 ヒント: 会計レポート自体はシングルタブのシンプルな画面です。列セット(PA_ReportColumnSet)と行セット(PA_ReportLineSet)は別ウィンドウで事前に定義しておく必要があります。
会計レポートはマスタ型のシングルタブ画面です。
| 項目 | テーブル | 役割 |
|---|---|---|
| 会計レポート定義 | PA_Report | レポート名、列セット、行セットの組み合わせ定義 |
会計レポートの基本操作手順
Section titled “会計レポートの基本操作手順”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レポート"]
⚠️ 注意: 列セット・行セットを変更すると既存レポート定義の出力内容が変わります。本番用レポートの列セット・行セットを修正する際は事前にコピーを作成してください。
アクセス方法
Section titled “アクセス方法”メニューから「会計・業績分析 > 財務レポート > 会計諸表」を開きます。
レポート定義の作成
Section titled “レポート定義の作成”- ツールバーの「新規」ボタンをクリック
- レポート定義を入力:
- 名前: レポートの名称(例: 「月次損益計算書」)
- 説明: レポートの概要
- 会計スキーマ: 対象の会計スキーマ
- 行セット: 使用する行セット(勘定科目の集計定義)
- 列セット: 使用する列セット(期間・金額タイプの定義)
- 帳票フォーマット: 出力形式(任意)
- 「保存」をクリック
レポートの実行
Section titled “レポートの実行”- レポート定義を開いた状態で「レポート」ボタンをクリック
- 実行パラメータを入力:
- 会計期間: 対象期間を選択
- 組織: 対象組織(全社 or 特定部門)
- 「OK」をクリックしてレポートを出力
項目リファレンス
Section titled “項目リファレンス”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 名前 | Y | テキスト | レポートの名称 |
| 説明 | - | テキスト | レポートの概要説明 |
| 会計スキーマ | Y | 選択 | 対象の会計スキーマ |
| 行セット | Y | 選択 | PA_ReportLineSet(勘定科目の集計構造) |
| 列セット | Y | 選択 | PA_ReportColumnSet(期間・金額タイプ) |
| 帳票フォーマット | - | 選択 | Jasper等の出力テンプレート |
| リスト元 | - | リスト | ソースの種類(会計、統計等) |
| リストタイプ | - | リスト | 表示タイプ(詳細、合計等) |
レポート構造の概念
Section titled “レポート構造の概念”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["期間タイプ(当期/累計/予算)"]
行セットと列セットの設計
Section titled “行セットと列セットの設計”行セット(PA_ReportLineSet)
Section titled “行セット(PA_ReportLineSet)”勘定科目の集計構造を定義します。各行に勘定科目の範囲や計算式を設定できます。
| 行の種類 | 説明 | 例 |
|---|---|---|
| 勘定科目指定 | 特定の勘定科目の残高を表示 | 売上高、仕入原価 |
| 合計行 | 複数行の合計を計算 | 売上総利益 = 売上高 - 仕入原価 |
| セグメント指定 | 組織やプロジェクトで絞り込み | 部門別損益 |
列セット(PA_ReportColumnSet)
Section titled “列セット(PA_ReportColumnSet)”表示する期間や金額タイプを定義します。
| 列の種類 | 説明 | 例 |
|---|---|---|
| 期間指定 | 特定期間の残高 | 当月、前月、前年同月 |
| 累計 | 期首からの累計 | 年度累計 |
| 予算 | 予算金額 | 当月予算 |
| 計算 | 列間の計算 | 予実差異 = 実績 - 予算 |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 損益計算書と貸借対照表はどう作り分けますか?
Section titled “Q. 損益計算書と貸借対照表はどう作り分けますか?”行セットで使用する勘定科目の範囲を変えます。損益計算書では収益・費用の勘定科目、貸借対照表では資産・負債・資本の勘定科目を行セットに設定します。
Q. 予算と実績の比較レポートを作るには?
Section titled “Q. 予算と実績の比較レポートを作るには?”列セットに「実績」列と「予算」列を定義し、さらに「計算」列で差異(実績 - 予算)を追加します。予算データは別途「GL予算」機能で入力しておく必要があります。
Q. 部門別の損益を出すには?
Section titled “Q. 部門別の損益を出すには?”レポート実行時に組織パラメータで特定部門を選択するか、行セットのセグメントフィルタで組織を指定します。
Q. レポートをExcelに出力できますか?
Section titled “Q. レポートをExcelに出力できますか?”はい。レポート出力画面からXLS形式でエクスポートできます。Jasperレポートと連携すれば、PDF形式での出力も可能です。
業務フロー上の位置づけ
Section titled “業務フロー上の位置づけ”graph TD
A[GL仕訳] --> B[Fact_Acct]
C[売上/仕入] --> B
B --> D[会計レポート]
D --> E[損益計算書]
D --> F[貸借対照表]
D --> G[予実比較表]
関連する仕様書
Section titled “関連する仕様書”OSS ERP導入についてのご相談
Section titled “OSS ERP導入についてのご相談”iDempiereの会計レポート機能は、損益計算書や貸借対照表を自由に設計できる柔軟な財務分析ツールです。 日本の会計基準に合わせたカスタム財務諸表を、オープンソースERPで実現しませんか?
As-Link株式会社では、iDempiereの導入支援・カスタマイズ開発を承っております。
🛠 技術仕様(開発者向け)
会計レポートは PA_Report テーブルに定義され、MReport クラスで管理されます。レポートの実行は FinReport クラス(SvrProcess を継承)が担い、Fact_Acct(会計事実)テーブルから集計データを取得して財務諸表を生成します。
レポートは「列セット(PA_ReportColumnSet)」と「行セット(PA_ReportLineSet)」の組み合わせで構成される柔軟なアーキテクチャです。
アーキテクチャ概要
Section titled “アーキテクチャ概要”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
パッケージ: org.compiere.report
主要ソースファイル:
org.adempiere.base/src/org/compiere/report/MReport.javaorg.adempiere.base/src/org/compiere/report/MReportColumnSet.javaorg.adempiere.base/src/org/compiere/report/MReportLineSet.javaorg.adempiere.base/src/org/compiere/report/MReportColumn.javaorg.adempiere.base/src/org/compiere/report/MReportLine.javaorg.adempiere.base/src/org/compiere/report/FinReport.java
関連DBテーブル
Section titled “関連DBテーブル”PA_Report(会計レポート定義)
Section titled “PA_Report(会計レポート定義)”| カラム名 | 型 | 必須 | 説明 |
|---|---|---|---|
| PA_Report_ID | ID | PK | レポートID |
| AD_Client_ID | TableDirect | Y | クライアント |
| AD_Org_ID | TableDirect | Y | 組織 |
| Name | String | Y | レポート名 |
| Description | String | N | 説明 |
| C_AcctSchema_ID | TableDirect | Y | 会計スキーマ |
| PA_ReportLineSet_ID | TableDirect | Y | 行セット |
| PA_ReportColumnSet_ID | TableDirect | Y | 列セット |
| AD_PrintFormat_ID | TableDirect | N | 帳票フォーマット |
| ListSources | List | N | ソース種類 |
| ListTrx | List | N | 表示タイプ |
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_ID | ID | 列ID |
| Name | String | 列名 |
| ColumnType | List | 列タイプ(相対期間/計算/セグメント値) |
| AmountType | List | 金額タイプ(期間残高/年度残高等) |
| RelativePeriod | Number | 相対期間(0=当月, -1=前月) |
| PostingType | List | 転記タイプ(実績/予算/統計) |
| CalculationType | List | 計算方法(加算/減算/割合) |
| Oper_1_ID / Oper_2_ID | TableDirect | 計算対象の列 |
PA_ReportLine(行定義)の主要カラム
Section titled “PA_ReportLine(行定義)の主要カラム”| カラム名 | 型 | 説明 |
|---|---|---|
| PA_ReportLine_ID | ID | 行ID |
| Name | String | 行名 |
| LineType | List | 行タイプ(セグメント値/計算) |
| CalculationType | List | 計算方法 |
| IsPrinted | YesNo | 印刷対象か |
| IsSummary | YesNo | 集計行か |
| SeqNo | Integer | 表示順序 |
レポートエンジンの処理フロー
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 の処理概要
Section titled “FinReport の処理概要”PA_Reportから列セット・行セットを読込- 各列の
RelativePeriodを実際のC_Period_IDに解決 - 行ごとに
PA_ReportSourceの勘定科目範囲でFact_Acctを集計 - 計算タイプの行(合計行、差異行)を演算
- 結果を
T_Report(一時テーブル)に格納 AD_PrintFormatまたは Jasper テンプレートで帳票出力
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”レポート定義の保存時バリデーション:
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; }}カスタムレポートプロセス
Section titled “カスタムレポートプロセス”FinReport を継承して独自の集計ロジックを追加:
public class CustomFinReport extends FinReport { @Override protected String doIt() throws Exception { // 標準処理を実行 String result = super.doIt(); // 独自の後処理(例: 結果をCSVエクスポート) return result; }}関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”iDempiereの会計レポートエンジンは、行セット・列セットの組み合わせで柔軟に財務諸表を設計できます。 日本の会計基準に合わせたカスタムレポートの開発も、コア改変なしで実現可能です。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。