Skip to content

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項目行が集計するセグメント値の指定
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/>列セットと組み合わせて実行"]

メニューから開く 会計管理 > 会計レポート > レポート行セット 行セットを新規作成 (例: 損益計算書) レポート行タブで行を追加 レポートソースタブで 集計する勘定科目を指定 計算方法と演算数1/2を指定 (例: 売上−原価=粗利) 符号・罫線・丸めを調整 保存 会計レポートで 列セットと組み合わせて実行 詳細行タイプ セグメント値 計算

メニューから「会計管理 > 会計レポート > レポート行セット」を開きます。

  1. ツールバーの「新規」ボタンをクリックし、行セットの名称を入力して保存
  2. レポート行」タブで行を追加:
    • 名称: 行見出し(例: 売上高
    • シーケンスNo: 行の並び順(自動採番: 最大値+10)
    • 詳細行タイプ: セグメント値(科目集計)/計算
  3. セグメント値行の場合、「レポートソース」タブで集計対象を指定:
    • タイプ: 勘定科目(Account Element)等のエレメント種別
    • 勘定科目エレメント: 対象科目(サマリ科目を指定すれば配下を一括集計)
  4. 計算行の場合、「計算」と「演算数 1/2」で対象行を指定
  5. 保存」をクリック
行名詳細行タイプ設定
売上高セグメント値ソース: 売上科目(サマリ科目)
売上原価セグメント値ソース: 原価科目
売上総利益計算減算、演算数1=売上高、演算数2=売上原価
販管費セグメント値ソース: 販管費科目
営業利益計算減算、演算数1=売上総利益、演算数2=販管費

💡 ヒント: 収益科目は貸方残のためマイナス表示になりがちです。「反対側の符号を表示」または「乗数」で行単位の符号を整えます。

項目名必須説明
名称必須文字列行見出し
シーケンスNo必須整数行の並び順(自動: 最大+10)
詳細行タイプ必須リストセグメント値/計算
計算-リスト加算・減算・比率(計算行のみ)
演算数 1/演算数 2-選択計算対象の行
転記タイプ/予算-リスト/選択行単位で列設定を上書きする場合に指定
金額タイプ/期間タイプ-リスト行単位の集計金額・期間の上書き
印刷必須チェック行を印字するか(作業行は非表示に)
反対側の符号を表示-チェック符号を反転して表示
借方/貸方のみ列の逆計算必須チェック借方・貸方列に対してのみ逆演算を適用
上線/下線ストロークタイプ-リスト小計・合計行の罫線
乗数/丸め係数-数値表示調整

レポートソースタブ(主要項目)

Section titled “レポートソースタブ(主要項目)”
項目名必須説明
タイプ必須リスト集計エレメント種別(勘定科目・組織等)
勘定科目エレメント-検索対象科目(サマリ科目で配下一括)
組織/取引先/品目 等-選択タイプに応じた集計対象
Include Nulls 系必須チェック当該ディメンションが未設定の仕訳も含める

全項目の一覧は 画面リファレンス を参照してください。

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_ReportLineSetMReportLineSet クラス・150行)、PA_ReportLineMReportLine クラス・553行)、PA_ReportSourceMReportSource クラス・285行)の 3 テーブルで構成されます。モデルクラスは org.compiere.report パッケージにあり、会計レポートエンジン FinReport(2,076行)が行定義を集計 SQL へ展開します。Document 型ではありません。

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 : 集計

+getLiness() MReportLine[] +list() +getSources() MReportSource[] +getSourceColumnName() String +getSelectClause(withSum) String +getWhereClause(PA_Hierarchy_ID) String +isLineTypeCalculation() boolean +isLineTypeSegmentValue() boolean +isPostingType() boolean #beforeSave(newRecord) boolean +getWhereClause(PA_Hierarchy_ID) String +copy(ctx, ...) MReportSource <> > X_PA_ReportLineSet : generated MReportLine --

パッケージ: org.compiere.report ソースファイル: org.adempiere.base/src/org/compiere/report/MReportLineSet.java / MReportLine.java / MReportSource.java

PA_ReportLineSet(レポート行セット)

Section titled “PA_ReportLineSet(レポート行セット)”
カラム名必須説明備考
PA_ReportLineSet_IDIDPK行セットID主キー
NameString(60)Y名称
ProcessingButtonY詳細コピー他行セットからの一括コピー処理

PA_ReportLine(レポート行・主要カラム)

Section titled “PA_ReportLine(レポート行・主要カラム)”
カラム名必須説明備考
PA_ReportLine_IDIDPK行ID主キー
PA_ReportLineSet_IDTableDirectY行セットFK
NameString(255)Y行見出し
SeqNoIntegerY並び順デフォルト @SQL=MAX(SeqNo)+10
LineTypeList(1)Y詳細行タイプセグメント値/計算
CalculationTypeList(1)N計算方法デフォルト A、セグメント値行では自動クリア
Oper_1_ID / Oper_2_IDTableN演算数1/2計算行の対象行
PostingType / GL_Budget_IDList / TableDirectN転記タイプ/予算行単位の上書き
PAAmountType / PAPeriodTypeList(1)N金額/期間タイプ行単位の上書き
IsPrintedYesNoY印刷デフォルト Y
IsShowOppositeSignYesNoN符号反転表示デフォルト N
IsInverseDebitCreditOnlyYesNoY借方/貸方のみ逆計算デフォルト N
OverlineStrokeType / UnderlineStrokeTypeList(3)N上線/下線小計・合計行の罫線
Multiplier / RoundFactorNumber / IntegerN乗数/丸め

PA_ReportSource(レポートソース・主要カラム)

Section titled “PA_ReportSource(レポートソース・主要カラム)”
カラム名必須説明備考
PA_ReportSource_IDIDPKソースID主キー
PA_ReportLine_IDTableDirectYレポート行FK同一行の複数ソースは合算
ElementTypeList(2)Yエレメント種別勘定科目・組織・取引先等
C_ElementValue_IDSearchN勘定科目エレメントサマリ科目で配下集計
Org_ID / C_BPartner_ID / M_Product_ID 他Table / SearchN種別に応じた対象
IsIncludeNulls*YesNoYNULL含む各ディメンションと対、デフォルト N

MReportLine.beforeSave():

  • LineType=SegmentValue の場合、CalculationTypeOper_1_IDOper_2_ID を自動クリア(集計行と計算行の排他制御)

実行時(FinReport):

  • MReportLine.getSelectClause(withSum) — 行の金額タイプに応じた集計 SELECT 句を生成
  • MReportLine.getWhereClause(PA_Hierarchy_ID) — 配下の全レポートソースの MReportSource.getWhereClause() を OR 結合し、レポート階層ツリー(サマリエレメントの展開)込みの絞り込み条件を生成
  • getSourceColumnName() / getSourceValueQuery() — ソースのエレメント種別から集計キー列を解決
  • 計算行(加減算・比率)は各行の集計後に FinReport 側で演算されます

MReportSource.copy(...) — 行セットコピー処理(詳細コピー)で使われる static コピーユーティリティです。

  • 関連プロセス: ヘッダの「詳細コピー」ボタン(Processing)は他行セットの行+ソースを複製する標準プロセスです
  • Model Validator: 行定義・ソース定義の変更統制は PA_ReportLine / PA_ReportSource へのバリデータで実装できます
  • 独自の組織・科目集計軸が必要な場合は、レポート階層(PA_Hierarchy)の別ツリー定義を先に検討してください
  • このテーブルに標準の callout はありません

B/S・P/L・キャッシュフロー等の帳票設計から、科目体系に合わせた行セット構築までコア改変なしで対応できます。

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

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