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

动态图表数据

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

实现思路

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

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

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

示例

1 准备数据

新建工作薄,添加数据集ds1,SQL语句为SELECT Year(订购日期)as 年, month(订购日期)as 月, 货主省份, 应付金额 FROM [订单] 。

2 定义参数

我们根据选择的年份与月份来动态改变图表,定义3个报表参数:报表参数Year:年份,默认值为2010;报表参数Start:起始月份,默认值为1;报表参数End:结束月份,默认值为6。

参数界面设计如下:500)this.width=500'>

3 表样制作在单元格中统计出各省某年若干月的销售额情况并汇总,如下图:500)this.width=500'>

数据列设置如下:单元格 数据集 数据列 属性A3 ds1 货主省份 设置过滤条件:年 等于$YearB3 ds1 年 默认C2 ds1 月 从左到右扩展,设置过滤条件:月 大于或等于$Start and 月 小于或等于$EndC3 ds1 应付金额 汇总-求和

根据参数值的不同,单元格中统计出来的数据不同,以单元格作为数据来源,图表显示的数据也不同,从而实现动态图表。

4 插入图表

合并一片单元格如上图,右击单元格元素>插入图表,选择柱形图,点击确定。

5 图表类型设置

柱形图种类选择三维柱形图,如下图:500)this.width=500'>

6 图表数据设置

图表数据来源于单元格数据分类轴为地区,系列名称为月份,系列值为销售额,如下图:500)this.width=500'>

点击保存,一张根据参数的改变动态改变的图表便制作完成了。

7 动态标题设置

给图表设置一个动态的标题,选中图表,选择图表属性表-样式>标题,点击公式按钮,公式为=$Year+”年度”+$Start+”—”+$End+”月销售额统计”,根据参数的不同显示动态标题。

500)this.width=500'>

最后报表主体中模板样式如下图:500)this.width=500'>

8 保存与预览

保存模板,点击分页预览,效果如上。模板效果在线查看请点击Dynamic.cpt已完成模板可参考%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Chart\Dynamic.cpt。

图表动态展示

FR图表在BS下可以动态显示(只有二维图表才有动态效果,三维图表无此功能),如下图:500)this.width=500'>

设置方法

二维图表默认就开启了“动态展示”,单击选中图表,在设计器右侧图表属性表中选择特效,点击交互属性,可将动态展示设置为关,如下图:500)this.width=500'>

原文转载自:FineReport官网:http://www.finereport.com/knowledge/chart/dynamiccharts.html

java中的动态图表_Java报表软件--动态图表相关推荐

  1. java 甘特图_Java报表软件--甘特图(Gantt chart)深度解析

    什么是甘特图(Gantt chart) 一般对甘特图的解释是:以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间,即甘特图(Gantt chart)是将活动与时间联系起来的 ...

  2. java 自定义报表_Java 报表软件--Style Report 自定义报表设计新思路

    让用户自己设计和修订报表的 用户自定义报表(又称即席报表)是 Java报表工具很多年来所不断追求的一个境界.但在很多尝试之后,我们可以说离用户自定义报表还有很大的距离.现有的解决方案大致可以归为两类. ...

  3. java定时器参数_Java报表软件定时器参数之一

    在FineReport报表软件为例,详细介绍一下定时器的参数. 1.时间 定时器中主要用到的时间参数如下: 日报 当前日期的前一天:Format(today()-1,"yyyy-MM-dd& ...

  4. java中数据结构的应用_Java集合入门 (二)常用数据结构和应用场景-数组

    Java极客  |  作者  /  铿然一叶 这是Java极客的第 48 篇原创文章 一.数组的特点 1.数组大小固定 2.一个数组只能存储相同数据类型 3.随机访问性能高 4.存储空间连续,这样可以 ...

  5. java 中random类使用_Java中的天使和魔鬼:Unsafe类

    我们在看ConcurrentHashMap源码时经常看到Unsafe类的使用,今天我们来了解下Unsafe类. Java是一个安全的编程语言,它能最大程度的防止程序员犯一些低级的错误(大部分是和内存管 ...

  6. java中无法推断类型参数_Java 10中的本地类型推断,或者如果它像鸭子一样嘎嘎叫...

    java中无法推断类型参数 最近,Oracle采用了一种新策略,即每六个月发布一次新的语言版本. 该策略假定只有每个第3版都将提供长期支持或LTS. 快速说明: 具有LTS的当前版本是Java 8: ...

  7. java中缓冲区和缓存_Java中的Google协议缓冲区

    java中缓冲区和缓存 总览 协议缓冲区是一种用于结构化数据的开源编码机制. 它是由Google开发的,旨在实现语言/平台中立且可扩展. 在本文中,我的目的是介绍Java平台上下文中协议缓冲区的基本用 ...

  8. java动态扩展_java栈内存动态扩展要怎么理解?要如何实现?

    小伙伴们知道如何在java栈中内存动态扩展吗?这是虚拟机中的一个概念,下面让我们一起来看看该如何实现吧. 一.内存概念 在java中,我们一般会简单把java内存区域划为两种:堆内存与栈内存.其实这种 ...

  9. java中el是什么_java中jsp的EL的定义以及使用

    1.定义: EL(Expression Language) 是为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方 ...

  10. java生成word文档_Java多种方式动态生成doc文档

    本来是要在Android端生成doc的(这需求...),最后方法没有好的方法能够在Android上做到完美,最后还是只能搬迁到服务器.不浪费,还是记录下各框架不支持Android的原因以及他们的特点. ...

最新文章

  1. 继承CListCtrl,然后重载OnLButtonUP消息,发现变成双击才触发???
  2. Leetcode 70
  3. [导入]在IE耗时操作中加入进度条或进度框
  4. python列表知识点_Python列表知识点
  5. 层次聚类分析代码_你知道如何聚类吗?层次聚类与聚类树
  6. 极速理解设计模式系列:6.适配器模式(Adapter Pattern)
  7. linux水滴怎么抓包,tcpdump 抓包
  8. hdu 1284 dp
  9. 微信小程序——简单的售后服务单
  10. Redis压力测试(详细)
  11. gstreamer协商negoation
  12. android椭圆形形框_什么是计算机硬件上的椭圆形Kong?
  13. 使用计算机自适应测验大型测验,计算机自适应测验中测验安全控制方法评述.pdf...
  14. 屏幕不光只看尺寸 各材质屏幕实战解析
  15. C++模拟与高精度——乒乓球
  16. UI设计教程分享:关于海报的合成过程
  17. AFN代码解读(-)
  18. 绝妙的Python语句搜集整理
  19. cnckadv16安装教程(含详细安装方法)
  20. 【智能系统学报】投稿记录

热门文章

  1. 公交非接触IC卡读写器的应用设计
  2. i.mx6ull uboot移植
  3. 用python计算100以内的素数_python如何求100以内的素数
  4. python下载安装教程
  5. 企业微信SDK接口api调用代码
  6. 人工智能在教育中的应用,主要包含哪几个方面?
  7. 2020网络安全NISP一级题库
  8. Solidity 教程系列2 - 地址类型介绍
  9. ubuntu下面火狐浏览器firefox中国版安装遇到到问题和解决办法
  10. 小程序云开发——列表页和详情页