軟件版本 Pentaho BIServer 5.0.1-ce
Pentaho CDE 14.03.07 (Stable)
上一篇介紹了一下Pentaho CDE使用文件的組織和結構這一篇來介紹一下圖形之間的聯動即點擊一個圖形的一部分另一個圖形顯示點擊部分的下一級或更詳細的內容。
(上一篇說要介紹一下CDE的目錄結構,如果只是用CDE的話是不用瞭解目錄結構的,這一話題放在後面再講這裏先讓大家用起來再說)
先來看一看最終做出來的效果是什麼樣的如圖:
下面就詳細的說一下具體怎麼實現
一、思路
在第一篇中已經講了如何生成一個餅形圖和一個和一個柱形圖(如果不清楚請看這裏),這裏只需要做的是在點擊餅形圖中的一部分時改變柱形圖數據源的查詢參數並重繪圖形。思路清楚了之後找出這裏實現的關鍵點如下:
1、點擊餅形圖時獲取點擊部分的對應值
2、響應點擊事件並把獲取的值傳遞給柱形圖數據源
3、重繪圖形
二、具體實現
這裏基於第一篇的繼續,這裏我們已經有了一個餅形圖和一個柱形圖,打開CDE編輯頁面選中組件面板(Components panel),在組件下面選中PieChar 右邊就會顯示出其對應的屬性如圖:
將這裏的clickable設置爲true,編輯clickAction 定義事件響應方法
click=function(s){ var category=s.atoms.category; var series=s.atoms.series var value=s.atoms.value Dashboards.fireChange("simplepara",category.toString()) }
這裏的參數s爲scene的一個實例,裏面包含餅形圖被點擊部分的數據
s.atoms.category //獲取類別 就是以這個字段分類的字段值
s.atoms.series //獲取系 就是 取值字段名
s.atoms.value //獲取值 這個值越大圖形中佔的比例越多
Dashboards.fireChange(parameterName,parameterValue)
parameterName:參數名
parameterValue:參數值
這個函數做兩件事
第一、更新CDF管理的參數的值(CDE是基於CDF的圖形的生成和參數管理都是基於CDF的Dashboards是CDF管理的核心類)
第二、重繪所有圖形
這裏Dashboards.fireChange要改變的參數名爲parameterName但是我們的組件裏還沒有這個參數
向組件中加入Simple parameter (Generic->Simple parameter)將其Name設置成simplepara將Property value設置成參數的默認值我這裏設置成我的機構代碼2200001
下面設置柱形圖
選中組件中的BarChar將Listeners設置成偵聽參數parameterName偵聽其值的改變,將Parameters設置映射成其內部參數orgname如圖:
修改BarChar的數據源爲bar_data 在數據源中新建sql over sqlJdbc 設置相應數據庫連接參數,並設置Parameters爲BarChar內部參數orgname並設置類型爲string,將參數設置到SQL語句中
SQL語句設置成如下:
SELECT depcode ,sum(fee) as total FROM `registerrecords` r
left join department o on r.depcode=o.depcode
where r.depcode=${orgname}
group by r.depcode
這裏用${orgname}將參數orgname的值引入到SQL中
注:設置類型很重要這樣SQL數據查詢處理的時候增加對應的轉換如string會加單引號(')
OK 保存文件點擊預覽並點擊餅形圖的一部分看看效果吧!
本人接觸Pentaho時間不長如果文中有錯誤望高手指出謝謝!
如果對文中有疑問請聯繫我
我的Email:[email protected]
我的博客:http://alenzhai.iteye.com/
下期預告:Pentaho CDE 組件使用說明