IBM WDF 创建地图仪表盘应用
二、用 Dashboard Framework 构建地图仪表板应用
为了试验方便起见,我们将数据存于一个 Excel 表中,其中有两个 Sheet,一个sheet存放某公司在全国各个省分的销售数据,另外一个sheet 存放该公司在各个地市的销售数据。设计的场景如下:公司领导通过全国地图仪表板的应用首先看到的是全国的销售业绩大致情况,用不同的颜色标注各省的销售情况(如销售业绩较好用红色,业绩不好用黄色,业绩一般用紫色),领导可以移动鼠标到某省,地图仪表板会浮动显示该省的具体数据,点击鼠标则可以转至该省的业务数据仪表板,看到各个该省所属各个地市的销售情况。
有了上面的可以绘制地图的 xml 文件和相应的销售示例数据后,我们可以开始创建仪表板应用了,具体步骤如下:
1. 新建一个 WebSphere Portlet Factory 项目,可按Java 命名规则取名,如取名为MapSample。由于我们采用的数据是 Excel 格式的,在创建项目的“添加功能部件集(Add Features Set)”向导中为项目添加集成 Excel 的特征库 (选中“集成扩展”->“Excel 扩展”) 和 Dashboard 特征库(选中“WebSphere Dashboard Framework” -> “Dashboard Framework”),以便导入集成Excel 和创建仪表板需要用到的各个 .jar包。
2. 在MapSample 项目下,新建一个ServiceProvider Model, 用于从 Excel 中获取数据。按照设计的场景,共需要两次从 Excel 中提取数据,第一次是提取全国的销售数据,第二次提取选中的省分下属各市、地区的销售数据。因此,在这个 Model 中,我们定义两个”服务操作”(Service Operation), 每个服务操作对应到一种情况的数据提取。
如下图所示,在这个 Model 中总共加入5个构建器:2个服务操作构建器,2个增强的 Excel 导入构建器,1个服务定义构建器。需要注意的是,对于提取地市数据的服务操作getDetailData和增强的 Excel 导入构建器detailDetail,由于要按选中的省分查询销售数据,所以应该设定有输入参数和启用“生成 GetRowByValue 方法”:
a. getDetailData的“构建器调用编辑”页面中展开“服务操作属性”,要调用的操作选为 “DataServices/detaildata/getRowByColValue” 而非常用的调出所有数据的“…./execute”;“操作输入”, “输入结构处理”项选择“使用所调用操作的结构”,“输入字段映射”选择“自动”;
b. detailDetail 的“构建器调用编辑”页面中,展开“详细信息支持”,勾上“生成 GetRowByValue 方法”,列名称选择表明地市所属省分的列如”C”

3. 在 MapSample 项目中,新建一个 Model (map.model)调用第2步中的 Model 中提供的方法,获取数据并以地图仪表板的形式直观展现各个省分和地区销售分布情况。在此 Model 中仅需要添加一个“服务消费者“(Service Consumer)构建器 和两个 “地图构建器”。 “服务消费者”构建器用来调用服务提供者中的服务来获得从 excel 中抽取出的数据,“地图构建器”一个用来显示全国地图,一个用来显示省分地图。为了使得显示省分的地图构建器能够自动根据中国地图上所选的省分调入对应的地图文件,另加了一个 String类型的“变量”(Varible)构建器用于存储地图文件的位置,一个“操作列表”(Action List)构建器用于根据所选则的省分设置地图文件的位置以及调用省分地图,一个 “方法”(Method)构建器用于编写地图文件存储位置的逻辑,方法内的逻辑代码体如下。
{
String mapfile;
if(provinceName!=null)
mapfile ="/chartstyle/Dashboards/"+provinceName+".map";
else
mapfile="/chartstyle/Dashboards/Hubei.map";
webAppAccess.getVariables().setString("mapfile",mapfile);
}
0
相关文章