iDempiere レポート行セットの使い方|会計 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 会計の全体像: 会計の全体図 も合わせてご覧ください。
レポート行セットは、会計レポート(財務諸表)の行方向に何を表示するかを定義するウィンドウです。「売上高」「売上原価」「売上総利益(計算行)」といった行の並びと、各行が集計する勘定科目(レポートソース)をここで設計し、レポート列セットと組み合わせて会計レポートを構成します。
📌 ポイント: 行は「詳細行タイプ」で性格が決まります。セグメント値行(勘定科目等の集計)と計算行(行同士の加減算)の 2 系統が基本で、B/S・P/L の見た目どおりに行を並べて小計・合計行を計算行で挟むのが定石です。
レポート行セットでできること
Section titled “レポート行セットでできること”- 会計レポートの行構成(科目行・小計行・合計行)の定義
- レポートソースによる集計対象(勘定科目エレメント・組織等)の指定
- 行間計算(加算・減算・比率)による利益行・小計行の定義
- 1 行への複数ソース合算(例: 複数科目をまとめて 1 行に)
- 符号反転・罫線(上線/下線)・丸めなど表示体裁の調整
- 既存行セットからの行の一括コピー(詳細コピー)
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| レポート行セット | PA_ReportLineSet | 約6項目 | 行セットの名称・コピー処理 |
| レポート行 | PA_ReportLine | 約21項目 | 個々の行の定義(タイプ・計算・体裁) |
| 翻訳 | PA_ReportLine_Trl | 約8項目 | 行名の多言語対応 |
| レポートソース | PA_ReportSource | 約35項目 | 行が集計するセグメント値の指定 |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>会計管理 > 会計レポート > レポート行セット"] --> B["➕ 行セットを新規作成<br/>(例: 損益計算書)"]
B --> C["📋 レポート行タブで行を追加"]
C --> D{詳細行タイプ}
D -->|セグメント値| E["🧾 レポートソースタブで<br/>集計する勘定科目を指定"]
D -->|計算| F["🧮 計算方法と演算数1/2を指定<br/>(例: 売上−原価=粗利)"]
E --> G["🎨 符号・罫線・丸めを調整"]
F --> G
G --> H["💾 保存"]
H --> I["📊 会計レポートで<br/>列セットと組み合わせて実行"]
アクセス方法
Section titled “アクセス方法”メニューから「会計管理 > 会計レポート > レポート行セット」を開きます。
- ツールバーの「新規」ボタンをクリックし、行セットの名称を入力して保存
- 「レポート行」タブで行を追加:
- 名称: 行見出し(例:
売上高) - シーケンスNo: 行の並び順(自動採番: 最大値+10)
- 詳細行タイプ: セグメント値(科目集計)/計算
- 名称: 行見出し(例:
- セグメント値行の場合、「レポートソース」タブで集計対象を指定:
- タイプ: 勘定科目(Account Element)等のエレメント種別
- 勘定科目エレメント: 対象科目(サマリ科目を指定すれば配下を一括集計)
- 計算行の場合、「計算」と「演算数 1/2」で対象行を指定
- 「保存」をクリック
損益計算書の行構成例
Section titled “損益計算書の行構成例”| 行名 | 詳細行タイプ | 設定 |
|---|---|---|
| 売上高 | セグメント値 | ソース: 売上科目(サマリ科目) |
| 売上原価 | セグメント値 | ソース: 原価科目 |
| 売上総利益 | 計算 | 減算、演算数1=売上高、演算数2=売上原価 |
| 販管費 | セグメント値 | ソース: 販管費科目 |
| 営業利益 | 計算 | 減算、演算数1=売上総利益、演算数2=販管費 |
💡 ヒント: 収益科目は貸方残のためマイナス表示になりがちです。「反対側の符号を表示」または「乗数」で行単位の符号を整えます。
項目リファレンス
Section titled “項目リファレンス”レポート行タブ(主要項目)
Section titled “レポート行タブ(主要項目)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 名称 | 必須 | 文字列 | 行見出し |
| シーケンスNo | 必須 | 整数 | 行の並び順(自動: 最大+10) |
| 詳細行タイプ | 必須 | リスト | セグメント値/計算 |
| 計算 | - | リスト | 加算・減算・比率(計算行のみ) |
| 演算数 1/演算数 2 | - | 選択 | 計算対象の行 |
| 転記タイプ/予算 | - | リスト/選択 | 行単位で列設定を上書きする場合に指定 |
| 金額タイプ/期間タイプ | - | リスト | 行単位の集計金額・期間の上書き |
| 印刷 | 必須 | チェック | 行を印字するか(作業行は非表示に) |
| 反対側の符号を表示 | - | チェック | 符号を反転して表示 |
| 借方/貸方のみ列の逆計算 | 必須 | チェック | 借方・貸方列に対してのみ逆演算を適用 |
| 上線/下線ストロークタイプ | - | リスト | 小計・合計行の罫線 |
| 乗数/丸め係数 | - | 数値 | 表示調整 |
レポートソースタブ(主要項目)
Section titled “レポートソースタブ(主要項目)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| タイプ | 必須 | リスト | 集計エレメント種別(勘定科目・組織等) |
| 勘定科目エレメント | - | 検索 | 対象科目(サマリ科目で配下一括) |
| 組織/取引先/品目 等 | - | 選択 | タイプに応じた集計対象 |
| Include Nulls 系 | 必須 | チェック | 当該ディメンションが未設定の仕訳も含める |
全項目の一覧は 画面リファレンス を参照してください。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 行タイプを「セグメント値」に変えたら計算設定が消えました。
Section titled “Q. 行タイプを「セグメント値」に変えたら計算設定が消えました。”仕様です。MReportLine.beforeSave() は詳細行タイプがセグメント値の場合、計算(CalculationType)と演算数 1/2 を自動クリアします。計算行とソース集計行は排他です。
Q. 1 つの行に複数の科目をまとめられますか?
Section titled “Q. 1 つの行に複数の科目をまとめられますか?”できます。レポートソースを同一行に複数登録すると合算されます。また勘定科目エレメントにサマリ科目を指定すれば、科目ツリーの配下全体が集計対象になります。
Q. 「Include Nulls in …」は何のためのチェックですか?
Section titled “Q. 「Include Nulls in …」は何のためのチェックですか?”集計対象ディメンションが未入力の仕訳を含めるかどうかの指定です。例えば取引先で絞るソースで「Include Nulls in BPartner」をチェックすると、取引先未設定の仕訳も行に含まれます。
Q. 行セットと列セットはどう組み合わせますか?
Section titled “Q. 行セットと列セットはどう組み合わせますか?”会計レポートウィンドウで「レポート行セット」と「レポート列セット」を 1 つずつ指定してレポートを定義します。行×列のマトリクスで Fact_Acct が集計されます。
🛠 技術仕様(開発者向け)
レポート行セットは PA_ReportLineSet(MReportLineSet クラス・150行)、PA_ReportLine(MReportLine クラス・553行)、PA_ReportSource(MReportSource クラス・285行)の 3 テーブルで構成されます。モデルクラスは org.compiere.report パッケージにあり、会計レポートエンジン FinReport(2,076行)が行定義を集計 SQL へ展開します。Document 型ではありません。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MReportLineSet {
+getLiness() MReportLine[]
+list()
}
class MReportLine {
+getSources() MReportSource[]
+getSourceColumnName() String
+getSelectClause(withSum) String
+getWhereClause(PA_Hierarchy_ID) String
+isLineTypeCalculation() boolean
+isLineTypeSegmentValue() boolean
+isPostingType() boolean
#beforeSave(newRecord) boolean
}
class MReportSource {
+getWhereClause(PA_Hierarchy_ID) String
+copy(ctx, ...) MReportSource
}
class FinReport {
<<process 会計レポート実行>>
}
MReportLineSet --|> X_PA_ReportLineSet : generated
MReportLine --|> X_PA_ReportLine : generated
MReportSource --|> X_PA_ReportSource : generated
MReportLineSet --> MReportLine : has many
MReportLine --> MReportSource : has many
FinReport --> MReportLineSet : 行を展開
FinReport --> Fact_Acct : 集計
パッケージ: org.compiere.report
ソースファイル: org.adempiere.base/src/org/compiere/report/MReportLineSet.java / MReportLine.java / MReportSource.java
関連DBテーブル
Section titled “関連DBテーブル”PA_ReportLineSet(レポート行セット)
Section titled “PA_ReportLineSet(レポート行セット)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| PA_ReportLineSet_ID | ID | PK | 行セットID | 主キー |
| Name | String(60) | Y | 名称 | |
| Processing | Button | Y | 詳細コピー | 他行セットからの一括コピー処理 |
PA_ReportLine(レポート行・主要カラム)
Section titled “PA_ReportLine(レポート行・主要カラム)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| PA_ReportLine_ID | ID | PK | 行ID | 主キー |
| PA_ReportLineSet_ID | TableDirect | Y | 行セットFK | |
| Name | String(255) | Y | 行見出し | |
| SeqNo | Integer | Y | 並び順 | デフォルト @SQL=MAX(SeqNo)+10 |
| LineType | List(1) | Y | 詳細行タイプ | セグメント値/計算 |
| CalculationType | List(1) | N | 計算方法 | デフォルト A、セグメント値行では自動クリア |
| Oper_1_ID / Oper_2_ID | Table | N | 演算数1/2 | 計算行の対象行 |
| PostingType / GL_Budget_ID | List / TableDirect | N | 転記タイプ/予算 | 行単位の上書き |
| PAAmountType / PAPeriodType | List(1) | N | 金額/期間タイプ | 行単位の上書き |
| IsPrinted | YesNo | Y | 印刷 | デフォルト Y |
| IsShowOppositeSign | YesNo | N | 符号反転表示 | デフォルト N |
| IsInverseDebitCreditOnly | YesNo | Y | 借方/貸方のみ逆計算 | デフォルト N |
| OverlineStrokeType / UnderlineStrokeType | List(3) | N | 上線/下線 | 小計・合計行の罫線 |
| Multiplier / RoundFactor | Number / Integer | N | 乗数/丸め |
PA_ReportSource(レポートソース・主要カラム)
Section titled “PA_ReportSource(レポートソース・主要カラム)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| PA_ReportSource_ID | ID | PK | ソースID | 主キー |
| PA_ReportLine_ID | TableDirect | Y | レポート行FK | 同一行の複数ソースは合算 |
| ElementType | List(2) | Y | エレメント種別 | 勘定科目・組織・取引先等 |
| C_ElementValue_ID | Search | N | 勘定科目エレメント | サマリ科目で配下集計 |
| Org_ID / C_BPartner_ID / M_Product_ID 他 | Table / Search | N | 種別に応じた対象 | |
| IsIncludeNulls* | YesNo | Y | NULL含む | 各ディメンションと対、デフォルト N |
ビジネスロジック
Section titled “ビジネスロジック”MReportLine.beforeSave():
LineType=SegmentValueの場合、CalculationType・Oper_1_ID・Oper_2_IDを自動クリア(集計行と計算行の排他制御)
実行時(FinReport):
MReportLine.getSelectClause(withSum)— 行の金額タイプに応じた集計 SELECT 句を生成MReportLine.getWhereClause(PA_Hierarchy_ID)— 配下の全レポートソースのMReportSource.getWhereClause()を OR 結合し、レポート階層ツリー(サマリエレメントの展開)込みの絞り込み条件を生成getSourceColumnName()/getSourceValueQuery()— ソースのエレメント種別から集計キー列を解決- 計算行(加減算・比率)は各行の集計後に FinReport 側で演算されます
MReportSource.copy(...) — 行セットコピー処理(詳細コピー)で使われる static コピーユーティリティです。
拡張ポイント
Section titled “拡張ポイント”- 関連プロセス: ヘッダの「詳細コピー」ボタン(Processing)は他行セットの行+ソースを複製する標準プロセスです
- Model Validator: 行定義・ソース定義の変更統制は
PA_ReportLine/PA_ReportSourceへのバリデータで実装できます - 独自の組織・科目集計軸が必要な場合は、レポート階層(PA_Hierarchy)の別ツリー定義を先に検討してください
- このテーブルに標準の callout はありません
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”B/S・P/L・キャッシュフロー等の帳票設計から、科目体系に合わせた行セット構築までコア改変なしで対応できます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。