软件版本 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:zhaizhisheng@sian.com
我的博客:http://alenzhai.iteye.com/
下期预告:Pentaho CDE plugin目录结构分析
![](https://i-blog.csdnimg.cn/blog_migrate/fdcd0315c8c03d63950356cf97c2f15c.png)