Groovyを使用しデータオブジェクトを加工する

|
PentahoレポートデザイナーではQuery Scriptingを使用し、Static Queryの結果であるデータオブジェクトを加工することができます。使用可能なQuery言語はGroovy、ECMA Scriptの2つです。Query Scriptingの基本的な使用方法はQuery Scriptingを使用するをご参照ください。


ここでは、Groovyを使用してサンプルレポートのBar Line Chart.prptのクエリ結果を加工してみましょう。

1.まずは、サンプルレポートを開きます。
ようこそ画面からCharts>Bar Lineを選択するか、メニューのHelp>Sample Reports>Charts>Bar Lineを選択しレポートを開きます。

2.レポートをプレビューします。
180202001.PNG

今回は「Classic Cars」の名称Groovyで変更してみましょう。

3.JDBCデータソースを開き「プレビュー」ボタンをクリックし、変更する前のデータセットを確認します。確認が終わり次第プレビューを閉じます。
180202002.PNG

4.Query Scriptingタブをクリックします。
Scripting LanguageにGroovyを選択し、「Template」ボタンをクリックします。
今回はStatic Queryの結果を加工するため、postProcessResultメソッド内に下記Groovy(Java)を追加します。
--
   for (int i=0;i<tableModel.getRowCount();i++) {
String s =tableModel.getValueAt(i,1);
if ("Classic Cars".equals(s)){
tableModel.setValueAt("Bus",i,1);
}
}
--
上記処理はテーブルモデルの2列目(indexは1)の各行から順にデータを取得し、
取得した文字列が"Classic Cars"の場合は文字列"Bus"を格納するコードです。
180202003.PNG

5.再度プレビューして「Classic Cars」が「Bus」に変わっていることを確認してみましょう。
180202004.PNG

6.問題なければJDBCデータソースの編集を「OK」ボタンで閉じて、レポートをプレビューしてみましょう。以下のように「Classic Cars」が「Bus」に変わっていることが確認できます。
180202005.PNG

Groovyを使用することで、レポートデザイナーの機能としてはないCSV取り込み、CSVデータとJDBCデータソースのテーブル結合なども可能です。
このように自由度や拡張性が高いことがレポートデザイナーの良さでもあります。
Javaで実現できる処理はレポートデザイナー内でも実現できるため、細かなカスタマイズも非常に簡単に実装することができます。

2018年3月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

月別 アーカイブ