与静态图表不同,动态图表的核心在于数据和图表类型可随条件的不同即时展现,即除了能展现一般的静态图表内容之外,动态图表还有很好的交互性。动态图表实现原理与动态报表类似,是基于参数传递或数据过滤实现的,本文介绍的是基于数据参数传递原理的动态图表。
动态图表数据
用户希望根据条件的不同,显示的图表不同,这是动态图表产生的最初推动力。如下图,选择年份与月份条件,图表中显示满足条件的数据,从而实现动态图表:
实现思路
根据参数条件动态改变图表的数据来源:
若图表数据来源于数据集,那么可以通过数据源参数来动态改变图表的数据;
若图表数据来源于单元格,那么可以通过报表参数,并设置过滤来改变图表的数据,该节就以此为例。
示例
1 准备数据
新建工作薄,添加数据集ds1,SQL语句为SELECT Year(订购日期)as 年, month(订购日期)as 月, 货主省份, 应付金额 FROM [订单] 。
2 定义参数
我们根据选择的年份与月份来动态改变图表,定义3个报表参数:
报表参数Year:年份,默认值为2010;
报表参数Start:起始月份,默认值为1;
报表参数End:结束月份,默认值为6。
参数界面设计如下:
3 表样制作
在单元格中统计出各省某年若干月的销售额情况并汇总,如下图:
数据列设置如下:
单元格 数据集 数据列 属性
A3 ds1 货主省份 设置过滤条件:年 等于$Year
B3 ds1 年 默认
C2 ds1 月 从左到右扩展,设置过滤条件:月 大于或等于$Start and 月 小于或等于$End
C3 ds1 应付金额 汇总-求和
根据参数值的不同,单元格中统计出来的数据不同,以单元格作为数据来源,图表显示的数据也不同,从而实现动态图表。
4 插入图表
合并一片单元格如上图,右击单元格元素>插入图表,选择柱形图,点击确定。
5 图表类型设置
柱形图种类选择三维柱形图,如下图:
6 图表数据设置
图表数据来源于单元格数据分类轴为地区,系列名称为月份,系列值为销售额,如下图:
点击保存,一张根据参数的改变动态改变的图表便制作完成了。
7 动态标题设置
给图表设置一个动态的标题,选中图表,选择图表属性表-样式>标题,点击公式按钮,公式为=$Year+”年度”+$Start+”—”+$End+”月销售额统计”,根据参数的不同显示动态标题。
最后报表主体中模板样式如下图:
8 保存与预览
保存模板,点击分页预览,效果如上。模板效果在线查看请点击Dynamic.cpt
已完成模板可参考%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Chart\Dynamic.cpt。
图表动态展示
FR图表在BS下可以动态显示(只有二维图表才有动态效果,三维图表无此功能),如下图:
设置方法
二维图表默认就开启了“动态展示”,单击选中图表,在设计器右侧图表属性表中选择特效,点击交互属性,可将动态展示设置为关,如下图: