Pentaho Reporting: 2010年5月アーカイブ

通常、レポートに表示するデータは
JDBCでデータベースに接続し、SQLで取得するのが一般的ですが、
例えば
欲しいデータを取得するためには一回のSQLでは難しい場合など、
PDI(ETL)を利用する方法もあります。


レポートデザイナーにて

Data Setsのところで
Pentaho Data Integrationを選択

053101.jpg


使用するktrファイルを指定
指定すると、作成したStepが表示されます
(ここではDataステップを選択しておきます)

053102.jpg

ここでは以前の記事で使っていたktrファイルをちょこっと変えたものを使ってます。
以前の記事はこちら

単純に職業名が入ったディメンジョンテーブルからある1つの値を取得するだけのETLです。
053103.jpg

以前の記事とは異なり、最後はダミー(Data)に変更してます。


ktrファイルを設定し、OKボタン押下で、
取得する項目が表示されます。
(ここでは職業ディメンジョンのIDおよび名称)

053104.jpg


次に
パラメータを設定。
(今回はテキストボックスにIDを入力し、該当する名称を取得するレポート)
パラメータの名称をItemとしておきます。

053105.jpg


データを取得するのはETLなので、
このItemで設定されている値をktrファイルに渡す設定をします。

以前の記事同様、Get System Infoにて引数を取得する方法で
ktrファイルを作成してあるため、この引数とItemを紐づけします。

Data Setsの設定にもどり
「Edit Parametar」を押下し、
パラメータで作成したItemを設定。

053106.jpgこれで完了。

ID=1は学生

053107.jpg

ID=5は公務員
053108.jpg

が表示されました。



単にIDを指定し、その名称を取得するだけのレポートですが、
ETLを使って、パラメータ(引数)も使って
取得することができました。

SQLが得意ではなく、ETLを使いこなせていれば
こういう方法もありですね。

私はなんとかSQLを駆使したい派ですが^^

★Have a nice Open Source Day★
KSKソリューションズ Pentahoチーム




レポートデザイナー3.0でレポートにパラメータを使用する為にはパブリッシュ時に作成されるxactionを編集し、プロンプト画面を作成する必要がありましたが、レポートデザイナー3.5からレポートはprpt形式となり、わざわざxactionを編集しなくてもレポートデザイナー内でプロンプトを作成出来るようになり大変使い易くなりました。
しかしながらレポートデザイナー内で作成したプロンプト画面は特定されている為、プロンプト画面とレポート表示画面を変えたい場合、プロンプトのレイアウトを変えたい場合などにはやはりxactionの使用が有効です。
そこで今回はxactionからのprpt起動方法を紹介したいと思います。

①まずレポートデザイナーで通常通りパラメータを使用したレポートを作成します。
regularreport.jpg

②次にデザインスタジオで新規にxactionを作成します。
Process inputsのinputにレポートに使用したパラメータ名と同じ名前でパラメータを作成します。
inputparam.jpg

Process inputsのresourceに作成したprptファイルを定義します。
resouce.jpg

Process Actionのprompt/Secure FilterにProcess Inputsで作成したパラメータを定義します。
definestoreparam.jpg

Process ActionsのRelationalにレポートで使用したクエリーを張り付け、パラメータの使用方法を
&{パラメータ名}→{PREPARE:パラメータ名}に変更します。
definequery.jpg

Process ActionsにPentaho Reportを定義します。Report Parametersにはレポートで使用したクエリー名を追加します。
definereport.jpg

Process OutputsにPentaho ReportのOutput Report Nameを追加し、xactionを保存します。
output.jpg

③レポートデザイナーでレポートを開き、作成したData setsを削除してExternalを追加します。作成したParametersも削除し、以下のように新たなパラメータを定義します。Name欄にはクエリー名を指定します。
param.jpg

④レポートを保存しユーザーコンソールからxactionファイルを起動するとprompt画面が表示され、
prompt.jpg

表示させたい物を選んでOKを押すとレポートが表示されます。
report.jpg

このようにxactionを使用することでprpt単体では制限されていたレポートの表示方法の幅が大きく広がります。

★Have a nice Open Source Day★
KSKソリューションズ Pentahoチーム