Java报表finereport使用心得之数据地图联动


1. 问题描述

地图的钻取功能,如下图,首次访问显示全中国各省份数据。点击山东省,进入山东省省地图,显示山东省数据,并在右侧的柱形图上显示展现该数据,实现联动效果。


2. 实现步骤

2.1 数据准备

新建2个数据查询ds1和ds2,:

ds1:SQL为SELECT * FROM [地图]

ds2:SQL为SELECT * FROM [地图] where 省份='${provience}'

2.2 地图制作

· 添加地图

合并一片单元格,点击菜单栏中的插入>单元格元素>插入图表,选择地图,然后点击确定,如下图:

· 地图类型

选中地图,在设计器右侧的图表属性面板图表属性表-类型选择地图类型,默认选择为国家地图>中国

注:设计器内置有三种地图,世界地图,国家地图以及省市地图,其中国家地图有两个,中国和美国,省市地图为中国的各省市地图,如需自定义地图,则可导入自己准备好的地图图片进行设计,详细请查看自定义地图钻取与联动

· 区域对应

在FineReport的内置数据库中存有区域对应字段,即表示地图的区域名跟数据库中存有的区域名的对应关系,比如说:中国地图,在地图类型处选中中国,点击设置按钮,选择区域对应字段,默认的区域对应字段为各省市的全称,如下图:


如果数据中的区域名称跟内置的区域名称不一致,即要重新配置区域名称对应,如上图所示,进入定义区域名对话框,可直接在右侧的数据库区域名中手动输入,也可选择数据集之后,直接通过下拉框输入。

注:如果数据库中的区域名称跟设计器中内置的地图区域名称对应不上,在使用过程中就会使用默认的区域对应关系。

· 地图数据

定义好地图的类型之后,就可以为地图定义数据来源了,选中地图,点击图表属性表-数据,进入数据设置面板,地图展现方式选择多层钻取,如下图:


钻取层级设置

从上图可以看到,钻取层级下有个中国的文件夹,选中中国文件夹,右击,则会跳出层级设置对话框,如下图:


图中的钻取对应地图表示该区域在钻取完成之后显示的地图,可手动输入,也可下拉框选择,但是该地图必须是定义好的,即必须是内置的地图或者是自定义好的。

注:如果钻取层次不止两级,比如说钻取到福建省之后,还需要钻取到福建省下面的县级市,但是我们内置地图只到省市,没有内置县级市的地图,这是时候就需要自定义地图,即自定义县级市地图,然后选中福建省,右击,进入下层钻取设置,在钻取对应地图中选择自定义的地图。比如,自定义了一张泉州市地图,如下图设置即可钻取至泉州市:


钻取数据设置

点击钻取数据,为每个层次的地图添加数据,层次1即中国地图的数据来源为ds1,区域名为省份,区域值为销售额,层次2即省市地图的数据来源也为ds1,区域名为地名,区域值为利润额,如下图所示设置:


注:支持地图层级钻取的数据表的数据必须全部在一张表中。如果用户数据在多张表,需要用户自己写sql合成一张表。

在设置钻取层次时,数据设置了几层就显示几层,空白层次不显示。

· 地图样式设计

选中地图,点击图表属性表-样式>系列可修改值区间以及配色方案。如下图:


注:

数据区间配置

数据区间配置如果选择自动, 即设计器会根据数据的最大值最小值自动划分区。

我们这里选择自定义,主题颜色改为深绿色,划分阶段使用默认值5,区间段设置如上图所示,如果需要修改区间段的颜色,点击色块即可修改。

2.3 柱形图

合并一片单元格,点击插入>单元格元素>插入图表,选择柱形图,点击确定即可添加一张柱形图。

· 柱形图数据来源


· 柱形图样式设计

给柱形图添加标题各地区利润额排名,如下图:


2.4 联动设置

如上所述,地图和柱形图都已经设置好了,如果要实现联动,则需要在设置交互属性。

选中地图,在图表属性表中选择特效,点击交互属性,添加一个超级链接,即点击,添加一个图表超链-联动单元格,设置如下图:




欲了解更多中式java报表软件?请点击

你可能感兴趣的:(Java报表finereport使用心得之数据地图联动)