iDempiere チャート設定の使い方|会計 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 会計の全体像: 会計の全体図 も合わせてご覧ください。
チャート設定は、SQL で定義したデータソースから棒グラフ・折れ線・円グラフ等を生成するための定義マスタです。定義したチャートはダッシュボードのガジェット等に表示でき、業績のグラフィカルな把握(パフォーマンス測定)に使用します。
📌 ポイント: チャートの見た目(種類・凡例・軸ラベル)は「チャート」タブ、集計元データ(FROM句・WHERE句・値カラム)は「データソース」タブと役割が分かれています。1 つのチャートに複数のデータソースを登録して系列(シリーズ)を重ねることができます。
チャート設定でできること
Section titled “チャート設定でできること”- チャート種類の選択(棒・折れ線・積み上げ棒・円・3D円・リング等)
- SQL(FROM句・WHERE句・値カラム・カテゴリカラム)によるデータソース定義
- 時系列チャート(日・週・月・四半期・年単位のグルーピングと表示範囲指定)
- 縦・横の向き(Orientation)、凡例表示、軸ラベルの設定
- キーカラムとテーブル指定によるチャート要素からのズーム(レコードへのドリルダウン)
- チャート名・軸ラベルの多言語翻訳
| タブ名 | テーブル | 項目数 | 役割 |
|---|---|---|---|
| チャート | AD_Chart | 約15項目 | チャート種類・向き・凡例・時系列設定・軸ラベル |
| データソース | AD_ChartDatasource | 約16項目 | SQL定義(FROM/WHERE・値/カテゴリ/日付カラム・ズーム用キー) |
| Datasource Translation | AD_ChartDatasource_Trl | 約7項目 | データソース名(系列名)の翻訳 |
| 翻訳 | AD_Chart_Trl | 約10項目 | チャート名・軸ラベルの翻訳 |
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>会計管理 > パフォーマンス測定 > チャート設定"] --> B["➕ 新規で名称・Chart Type・<br/>Orientation を入力"]
B --> C{時系列チャート?}
C -->|Yes| D["⏱ Time Series にチェック<br/>Time Unit(日/週/月/四半期/年)と<br/>Time Scope を設定"]
C -->|No| E["💾 チャートタブを保存"]
D --> E
E --> F["📊 データソースタブで<br/>FROM句・Value Column・<br/>Category/Date Column を定義"]
F --> G["🔍 ズームさせる場合は<br/>テーブルとキーカラムを指定"]
G --> H["💾 保存 → ダッシュボード等で表示確認"]
アクセス方法
Section titled “アクセス方法”メニューから「会計管理 > パフォーマンス測定 > チャート設定」を開きます。
- ツールバーの「新規」ボタンをクリック
- チャートタブで基本情報を入力:
- 名称: チャート名(タイトルとして表示)
- Chart Type: 描画するチャートの種類(必須)
- Orientation: 縦(V)/ 横の向き(必須、デフォルト V)
- Display Legend: 凡例を表示するか(デフォルト Y)
- ドメイン名 / Range Label: 横軸・縦軸のラベル
- 時系列の場合: Time Series にチェックし、Time Unit(グルーピング単位)と Time Scope(表示する期間数)を設定
- 「保存」をクリック
- データソースタブで集計 SQL を定義:
- 名称: 系列名(Series Column 未指定時はこの名称が系列名になる)
- SQL FROM句: 集計元テーブル(必須)
- Value Column: 集計する値のカラム(必須)
- Category Column / 日付カラム: カテゴリ軸(時系列の場合は日付カラム)
- SQL WHERE句: 絞り込み条件(コンテキスト変数使用可)
- 「保存」をクリック
💡 ヒント: WHERE句には
@#AD_Client_ID@などのコンテキスト変数が使用できます(実行時にEnv.parseContext()で解決されます)。マルチテナント環境では必ずクライアント条件を入れてください。
項目リファレンス
Section titled “項目リファレンス”チャートタブ
Section titled “チャートタブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 名称 | 必須 | 文字列 | チャート名 |
| Chart Type | 必須 | リスト | チャートの種類(棒・折れ線・円等) |
| Orientation | 必須 | リスト | チャートの向き(デフォルト V=縦) |
| Display Legend | 必須 | チェック | 凡例の表示(デフォルト Y) |
| Time Series | 必須 | チェック | ドメイン軸を時間で編成するか(デフォルト N) |
| Time Unit | - | リスト | 時系列のグルーピング単位(日/週/月/四半期/年) |
| Time Scope | - | 整数 | 表示に含める期間数 |
| ドメイン名 | - | 文字列 | ドメイン軸(横軸)のラベル |
| Range Label | - | 文字列 | レンジ軸(縦軸)のラベル |
| ウィンドウ高さ | - | 整数 | 描画サイズ(最小 1) |
| エンティティタイプ | 必須 | 選択 | 辞書の所有・同期区分 |
データソースタブ
Section titled “データソースタブ”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 名称 | 必須 | 文字列 | データソース名(系列名の既定値) |
| SQL FROM句 | 必須 | テキスト | 集計元の FROM 句 |
| Value Column | 必須 | 文字列 | 集計値のカラム(完全修飾) |
| Category Column | - | 文字列 | カテゴリ軸のカラム |
| 日付カラム | - | 文字列 | 時系列チャートの日付カラム |
| Series Column | - | 文字列 | 系列を分けるカラム |
| SQL WHERE句 | - | テキスト | 絞り込み条件(コンテキスト変数可) |
| Time Offset | - | 整数 | 現在日からのオフセット期間数 |
| テーブル | - | 選択 | ズーム先のテーブル |
| キーカラム | - | 文字列 | ズーム時のレコード特定キー |
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. 時系列チャートはどの単位で集計されますか?
Section titled “Q. 時系列チャートはどの単位で集計されますか?”Time Unit に応じて日付カラムを TRUNC(日付, 単位) で丸めてグルーピングします(日=D、週=W、月=MM、四半期=Q、年=Y)。表示ラベルも単位に応じたフォーマット(例: 月なら yyyy-MMM)で生成されます。
Q. チャートの要素をクリックして元データにジャンプできますか?
Section titled “Q. チャートの要素をクリックして元データにジャンプできますか?”できます。データソースタブで「テーブル」と「キーカラム」を設定すると、クリックした系列・カテゴリに該当するレコード ID 群を再検索し、対象テーブルへのズームクエリを生成します(MChartDatasource.getZoomQuery())。該当レコードがない場合は「レコードなし」クエリになります。
Q. 1 つのチャートに複数の系列を表示するには?
Section titled “Q. 1 つのチャートに複数の系列を表示するには?”方法は 2 つあります。(1) データソースを複数登録する(各データソースの名称が系列名になります)。(2) 1 つのデータソースで Series Column に系列を分けるカラムを指定する。
Q. WHERE句に動的な条件を書けますか?
Section titled “Q. WHERE句に動的な条件を書けますか?”書けます。WHERE句は実行時にコンテキスト変数(例: @#AD_Client_ID@、ウィンドウのフィールド値)を解決してから実行されます。ログイン クライアントや画面の選択値に応じた絞り込みが可能です。
🛠 技術仕様(開発者向け)
チャート設定は AD_Chart(チャート定義)と AD_ChartDatasource(データ定義)に格納されます(アクセスレベル: System+Client。翻訳テーブル AD_Chart_Trl / AD_ChartDatasource_Trl を含む 4 テーブル構成)。MChart クラス(219行)が描画・JSON データ生成、MChartDatasource クラス(193行)が SQL 組み立てとズームを担います。描画エンジンは JFreeChart(ChartBuilder 経由)です。Document 型ではありません。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MChart {
+getDatasources() List~MChartDatasource~
+setWindowNo(int)
+getChartImage(int width, int height) BufferedImage
+getData() JsonObject
}
class MChartDatasource {
+getZoomQuery(MChart, String value, String category2) MQuery
}
class X_AD_Chart {
<<generated>>
}
class X_AD_ChartDatasource {
<<generated>>
}
class PO {
<<abstract>>
}
MChart --|> X_AD_Chart
MChartDatasource --|> X_AD_ChartDatasource
X_AD_Chart --|> PO
X_AD_ChartDatasource --|> PO
MChart --> MChartDatasource : has many
MChart ..> ChartBuilder : JFreeChart 描画
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MChart.java、MChartDatasource.java
関連DBテーブル
Section titled “関連DBテーブル”AD_Chart(チャート)
Section titled “AD_Chart(チャート)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| AD_Chart_ID | ID | PK | チャートID | 主キー |
| Name | String(60) | Y | 名称 | 識別子 |
| ChartType | List(2) | Y | チャート種類 | |
| ChartOrientation | List(1) | Y | 向き | default V |
| IsDisplayLegend | YesNo | Y | 凡例表示 | default Y |
| IsTimeSeries | YesNo | Y | 時系列フラグ | default N |
| TimeUnit | List(1) | N | 時間単位 | 日/週/月/四半期/年 |
| TimeScope | Integer | N | 期間数 | |
| DomainLabel / RangeLabel | String(60) | N | 軸ラベル | 翻訳対象 |
| WinHeight | Integer | N | 描画高さ | 最小値 1 |
| EntityType | Table(40) | Y | エンティティタイプ | default は SysConfig DEFAULT_ENTITYTYPE |
AD_ChartDatasource(チャートデータソース)
Section titled “AD_ChartDatasource(チャートデータソース)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| AD_ChartDatasource_ID | ID | PK | データソースID | 主キー |
| AD_Chart_ID | TableDirect | Y | 親チャートFK | isparent |
| Name | String(60) | Y | 名称(系列名の既定値) | |
| FromClause | Text(2000) | Y | SQL FROM句 | |
| WhereClause | Text(2000) | N | SQL WHERE句 | 実行時に Env.parseContext() で変数解決 |
| ValueColumn | String(124) | Y | 値カラム | |
| CategoryColumn | String(124) | N | カテゴリカラム | |
| DateColumn | String(124) | N | 日付カラム | 時系列時に TRUNC() される |
| SeriesColumn | String(124) | N | 系列カラム | 未指定時は Name を系列名に使用 |
| TimeOffset | Integer | N | 期間オフセット | |
| AD_Table_ID | TableDirect | N | ズーム先テーブル | |
| KeyColumn | String(124) | N | ズーム用キーカラム |
erDiagram
AD_Chart ||--o{ AD_ChartDatasource : "has datasources"
AD_Chart ||--o{ AD_Chart_Trl : "translations"
AD_ChartDatasource ||--o{ AD_ChartDatasource_Trl : "translations"
AD_ChartDatasource }o--o| AD_Table : "zoom target"
ビジネスロジック
Section titled “ビジネスロジック”チャート描画(MChart)
Section titled “チャート描画(MChart)”getChartImage(width, height):ChartBuilderで JFreeChart オブジェクトを生成し、BufferedImage(半透明、前景アルファ 0.8)を返します。サイズ未指定時はWinHeight、それも無ければ 100px 四方getData(): チャートデータを JSON で返します。時系列の棒/折れ線/積み上げ棒は XYDataset、円/3D円/リングは PieDataset、それ以外は CategoryDataset を使用。名称・軸ラベルはget_Translation()で翻訳済みの値を出力
SQL 組み立てとズーム(MChartDatasource)
Section titled “SQL 組み立てとズーム(MChartDatasource)”getZoomQuery() は表示中の値・カテゴリから元レコードを特定します:
- 時系列の場合、カテゴリ式を
TRUNC(DateColumn, unit)(D/W/MM/Q/Y)で構築 - WHERE句をコンテキスト変数解決(
Env.parseContext) SELECT KeyColumn, category, series FROM FromClause [WHERE ...] GROUP BY / ORDER BYを実行- クリックされた値に一致する行の ID を収集し、
AD_Table_IDのテーブルに対するMQueryを返却(一致なしなら NoRecordQuery)
⚠️ 注意: FROM句・WHERE句・カラム名は SQL にそのまま連結されます。データソースの定義はシステム管理者権限で管理し、入力値の由来に注意してください。
拡張ポイント
Section titled “拡張ポイント”- Model Validator:
AD_Chart/AD_ChartDatasourceの保存時に SQL 定義の命名規則・必須条件(クライアント条件の強制等)をチェック可能 - カスタムダッシュボードガジェット:
MChart.getChartImage()/getData()を呼び出して独自 UI(ZK ガジェット・外部連携)にチャートを埋め込み可能 - callout: このウィンドウのカラムに callout は定義されていません
関連プロセス
Section titled “関連プロセス”リファレンスページ・メニューに関連プロセスの登録はありません(チャートはダッシュボード表示時に動的に描画されます)。
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”チャート設定は SQL 定義だけで独自 KPI グラフをダッシュボードに追加できます。複雑な集計ビューの設計や、独自ガジェットによる可視化拡張もご相談ください。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。