Chinaunix首页 | 论坛 | 博客
  • 博客访问: 73869
  • 博文数量: 42
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 388
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-29 10:01
文章分类
文章存档

2015年(8)

2014年(34)

我的朋友

分类: LINUX

2014-12-11 14:44:49

与静态图表不同,动态图表的核心在于数据和类型可随条件的不同即时展现,即除了能展现一般的静态图表内容之外,动态图表还有很好的。动态图表实现原理与动态报表类似,是基于参数传递或数据过滤实现的,本文介绍的是基于数据参数传递原理的动态图表。

动态图表数据

用户希望根据条件的不同,显示的图表不同,这是动态图表产生的最初推动力。如下图,选择年份与月份条件,图表中显示满足条件的数据,从而实现动态图表:
动态图表

实现思路

根据参数条件动态改变图表的数据来源:

若图表数据来源于数据集,那么可以通过数据源参数来动态改变图表的数据;

若图表数据来源于单元格,那么可以通过报表参数,并设置过滤来改变图表的数据,该节就以此为例。

示例

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下可以动态显示(只有二维图表才有动态效果,三维图表无此功能),如下图:
动态图表

设置方法

二维图表默认就开启了“动态展示”,单击选中图表,在设计器右侧图表属性表中选择特效,点击交互属性,可将动态展示设置为关,如下图:
动态图表
原文转载自:FineReport官网:

阅读(345) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~