您的位置:首页 > 编程语言 > Java开发

用报表软件自定义地图

2015-07-16 17:22 295 查看
以FineReport软件为例

在企业的信息数据中,对于那些业务遍布全国的企业来说,无疑可以直接使用我们的内置中国地图来直观展现,但是对于展示没有内置地图的数据的,比如说通过地图展示县级市数据,我们则可用过自定义地图实现。
将自定义的图片上传至FineReport,在FineReport中定义好图片上对应区域或者对应点的名称,此时上传的图片就被转化成了和FineReport内置的图表具有相同属性的文件,再设置好要展示的图表数据,就可以跟FineReport内置的图表一样,可以数据点提示,可以联动,可以传参,自定义好的地图,会自动保存为当前报表工作目录中的一种地图样式,重复使用。

某公司的业务数据都在泉州市,希望通过泉州地图来实现点击某一个县的时候,同时会出现

数据准备
新建2个数据查询,一个用做地图的数据源,一个用做折线图的数据源。
ds1:SQLSELECT avg(指数) as 平均指数,城市 FROM map_泉州数据 group by 城市。
ds2:SQLSELECT * FROM map_泉州数据 where 城市='${city}',参数默认值为安溪县。

自定义地图
合并一片单元格,点击菜单栏中的插入>单元格元素>插入图表,选择地图,点击确定。
地图类型

由于我们要制作的地图是泉州市地图,但是泉州市地图并不在我们内置地图中,即可使用自定义地图。
选中地图,在右侧上方的属性面板中选择图表属性表-类型,点击

按钮,选中添加自定义地图,如下图:



选中新建好的自定义地图,点击

,选择编辑图片区域,如下图:



在弹出的对话框中导入准备好的地图图片,如下图:



注:用户新上传的地图只支持svg格式的上传,图 片保存在resources\chartmapsvg\user-defined目录下。
双击图片中的每一块区域,将其命名,可以直接选取数据库中的,也可以直接手动书写,命名好之后,点击保存,如下图:



所有区域都添加完成之后,点击确定,回到图表属性面板,再次点击

,可编辑自定义地图名称,我们这里将自定义地图命名为泉州市地图。
到此,泉州市地图则定义好了,属性表的地图列表中有了泉州市地图,可以用在任意报表中。



注:自定义地图的数据保存在resources\chartmapsvg\user-definedresources\chartmapsvg\user-defined目录下的svg文件中,如果在另外一个报表工程中需要使用该自定义地图,则将该文件复制过去然后重启报表服务就能生效。
地图数据

定义好地图之后,需要给地图定义数据源,选中地图,点击图表属性表-数据,我们这里不需要实现地图的钻取,则地图展现方式直接使用默认的单层地图即可,数据设置如下图:



保存之后,地图就做好了,下面制作跟地图联动的折线图。

折线图
在地图的右侧合并一片单元格,插入折线图,表样式如下:



折线图数据来源

为折线图设置数据来源,数据集为ds2,分类轴为月份,系列名使用字段名,字段名为指数,如下图:



折线图样式设置

为折线图设置动态标题,即当点击泉州市的某个县时,折线图的标题也随着变化,设置如下:



交互属性设置
地图和折线图都制作好了,由于要实现地图与折线图之间的联动,则需要在图表属性表-特效>交互属性中添加超级链接。
选中地图,在交互属性中添加超级链接图表链接-联动单元格,如下图设置:



保存与预览
保存模板,点击分页预览,即可看到上面所示的效果,模板效果在线查看请点击
已完成模板可参见:%FR%\WebReport\WEB-INF\reportlets\doc\Advanced\Chart\Map_relate.cpt。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息