軟件版本 Pentaho BIServer 5.0.1-ce
Pentaho CDE TRUNK-SNAPSHOT Build for Pentaho 5.0
上一篇介紹了一下Pentaho CDE 的安裝、CDE的界面介紹和使用CDE做了一個簡單的例子,那麼這麼漂亮的圖形是怎麼生成的呢,下面就和大家一起走進CDE,在此之前先來一張上一篇的成果圖:
Pentaho CDE的組成結構
在Pentaho BIServer中瀏覽文件打開CDE文件保存位置(我的保存在/home/admin目錄下)
其中紅框中的三個文件是CDE的正式使用文件下面的XXX.tmp是CDE編輯時生成的臨時文件只是臨時保存編輯過程中的內容這裏只討論上面的三個文件,這三個文件中demo1(實際爲demo1.wcdf)和demo1.cdfde是CDE生成的控制儀表盤的顯示,而demo1.cda是CDA生成的文件提供數據支持下面詳細介紹一下這三個文件
注:你可以選中其中一個文件將其下載到指定位置然後用文本編輯器打開查看裏面的內容。
1、demo1(即demo1.wcdf)
<?xml version="1.0" encoding="UTF-8"?> <cdf> <title>demo1</title> <description>demo1</description> <author></author> <style>Clean</style> <rendererType></rendererType> <widget>false</widget> <widgetName></widgetName> <widgetParameters></widgetParameters> </cdf>
可以看到其實就是一個XML文件,這個文件定義了儀表盤的標題、對儀表盤的描述等。
大家可以看到這個XML的根節點爲cdf因爲CDE是基於cdf的(熟悉cdf的應該知道cdf的配置文件和這個文件結構非常類似)
title:定義當儀表盤被渲染時html頁面的標題可以在CDE編輯頁面設置,默認爲文件名
description:對儀表盤的描述,可以在CDE編輯頁面設置,默認爲文件名
author:作者記錄誰製作的這個儀表,盤默認爲空
style:指定儀表盤使用的模板,就是一個Html文件在pentaho-cdf-dd\resources\styles目錄下系統自帶Clean和WDDocs兩個模板,可以定義自己的模板。
rendererType:渲染類型
widget:一個布爾值指定這個儀表盤是否爲一個窗口小部件(在保存是可以先Dashboard或widget)
widgetname:窗口小部件的名字
widgetparameters:渲染窗口小部件時需要的參數
2、demo1.cdfde
這個文件內容比較多這裏只列舉一部分加以說明
佈局部分:
{ "layout": { "title": "CDF - Sample structure", "rows": [ { "id": "a19ac039-4605-d0c1-153c-d246fa6c0ac2", "type": "LayoutRow", "typeDesc": "Row", "parent": "UnIqEiD", "properties": [ { "name": "name", "value": "Dashboard_header", "type": "Id" }, { "name": "height", "value": "10", "type": "Integer" }, { "name": "backgroundColor", "value": "", "type": "Color" }, { "name": "roundCorners", "value": "", "type": "RoundCorners" }, { "name": "textAlign", "value": "", "type": "TextAlign" }, { "name": "cssClass", "value": "", "type": "String" } ] } ..........
layout:定義儀表盤的佈局以行和列的形式來定義(上一篇講過)
rows:爲一個數組,這裏包涵所有的layout佈局組件(這裏稱行、列或hmtl爲佈局組件)的定義裏面的元素都包涵以下字段:
type:佈局組件的類型可以爲LayoutRow——行、LayoutColumn——列、LayoutHtml——html、LayoutResourceFile——資源文件、LayoutSpace——空的一塊空間等
parent:父佈局組件ID 若無父組件則爲UnIqEiD
properties:定義組件的屬性
儀表盤組件:
"components": { "rows": [ { "id": "CHARTS", "name": "Charts", "type": "Label", "typeDesc": "<i>Group</i>", "parent": "UnIqEiD", "properties": [ { "name": "Group", "value": "Charts", "type": "Label" } ] }, { "id": "ea05ceb1-2e7c-613d-bcf0-0f07c4635c72", "type": "ComponentscccBarChart", "typeDesc": "CCC Bar Chart", "parent": "CHARTS", "properties": [ {。。。。
和layout類似其根爲components 其下也包括rows和rows中的元素這裏不再詳細講述
這個文件主要定義儀表盤的佈局和頁面中都包括哪些儀表盤組件
3、demo1.cda
其實這個文件並不是CDE生成的而是CDA生成如果你沒有安裝CDA是不會有這個文件的,不過這裏涉及到這個文件就對這個文件做一個簡單說明,很簡單就是一個數據源的定義:
<?xml version="1.0" encoding="UTF-8"?> <CDADescriptor> <DataSources> <Connection id="data_source" type="sql.jdbc"> <Driver>com.mysql.jdbc.Driver</Driver> <Pass>adminadmin</Pass> <Url>jdbc:mysql://localhost:3306/alen?useUnicode=true&amp;characterEncoding=utf-8</Url> <User>root</User> </Connection> </DataSources> <DataAccess access="public" cache="true" cacheDuration="3600" connection="data_source" id="data_source" type="sql"> <Columns/> <Parameters/> <Query>SELECT orgname ,sum(fee) as total FROM `registerrecords` r left join organizations o on r.orgcode=o.orgcode group by r.orgcode</Query> </DataAccess> </CDADescriptor>
大家應該對上面的內容並不陌生這裏定義了一個DataSource 包括:驅動、用戶名、密碼、連接串和SQL語句等。
好了今天就到這裏吧!
本人接觸Pentaho時間不長如果文中有錯誤望高手指出謝謝!
如果對文中有疑問請聯繫我
我的Email:[email protected]
我的博客:http://alenzhai.iteye.com/
下期預告:Pentaho CDE plugin目錄結構分析