Eclipse BIRTを使ってみる (3) - チャートを出力する -
今回コードはまったくありません(SQL以外は)。ほぼ操作方法的な感じになる。
下準備
とりあえず今回以下のようなテーブル構造を使用する
CREATE TABLE `items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`item_name` varchar(50) NOT NULL,
`price` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `sales` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`item_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
てな感じ。ID、アイテム名、値段、販売数、値段*販売数の5つのデータをバインディングする
データセットの作成
SELECT
i.id,
i.item_name,
i.price,
count(s.id) as sales
FROM
items as i
INNER JOIN
sales as s
ON
i.id = s.item_id
GROUP BY i.id
をクエリーで参照する。で計算例な所に値段*販売数をバインドする(以下参照)
で結果プレビューすると
てな感じになる。これでデータセットは完了
チャートをマッピングする
パレットビューからグラフをDnDしてレイアウトに設定する。ダイアログが出るので、とりあえず今回は棒グラフを生成する。で次にデータ選択画面にて、データをバインドする設定を行う
まずデータ選択から「Use Data from」で作成したデータセットを選択する。んで左側にある値系列のを押して、値としてバインドするデータカラムを設定。今回はsales_sumを設定する
でカテゴリー系列でラベルを設定する。同じくを押して設定する。んでその隣のソート画面で
てな感じで設定する。特にグルーピングする必要が無ければチェック外しておく事(外さないとデータがグルーピングされる)
で右側のY系のグループ設定は必要ないなら設定しなくて良いので今回はやらない。あとはグラフの書式設定だけど、値系列設定で「Show Series Labels」をチェックしておくとグラフに対応する値がグラフにレンダリング出来る。
これで設定終わり。保存してプレビューして見てみる
んで、プレビューで成功しても以前同様にJavaから実行して行う場合ではエラーになる事があるのでそこでもチェックしてみる
でこんな感じになる