多语言展示
当前在线:1506今日阅读:60今日分享:41

ireport 4.5教程之图表详解

ireport 4.5教程之图表详解,本文介绍ireport 的图表以及图表的实现方法
工具/原料

ireport

方法/步骤
1

iReport很多的图表(Chart)类型可提供使用。iReport现在支持Pie,Pie 3D,Bar,Bar 3D,XY Bar,Stacked Bar,Stacked Bar 3D,Line,XY Line,Area,XY Area,Scatter Plot,Bubble,Time Series,High Low Open Close和Candlestick 多种类型图表。iReport使用jfreechart作为其图表引擎,jfreechart是一个强大的chart 生成工具。创建chart的机制是建立在dataset的概念之上的,这就使得数据的管理和对更多复杂图表类型如High Low 之类实现可视化。

2

第一个图表在这一章节里我们将来学习如何使用chart 工具一步一步在一个报表里创建一个Pie3D的chart。在这个例子中我们将使用doradosample里的数据库作为数据源。建立一个空白的文档,点击 打开查询窗口并且写下如下查询语句:select employee_department,count(*) count from tb_employee group by employee_department

3

报表的查询窗口这里我们想生成一个chart用来显示根据学历员工数目。点击OK确认,iReport将注册查询得到的fields。同时把这些fields从objects library里拖出放入detail的band里。

4

选择chart tool 在summary里放置一个新的chart。

5

从charts窗口里我们选择pie3D图标并按OK按钮。要配置chart,双击chart打开属性窗口,同时你可以通过右键菜单的方式打开chart的属性窗口。

6

点击“Edit chart properties”按钮出现的chart属性窗口。这个窗口包含两个标签:“Chart properties”和“Chart Data”。第一个标签包含控件的parameters列表;第二个标签是用来决定和当前图片关联的数据。修改图形的不同样式,设置背景的alpha和前景的alpha为0.5和depth factor(深度因子)为0.2。

8

在“Type of dataset”列表框中允许你指定一个dataset用来生成图形。在“dataset”标签里你可以在报表的上下文里指定一个dataset。Reset type和Reset group 允许你对dataset进行重置。为了我们的需要,我们设置Reset type 为“Report”。当我们不想数据被重置时。同时我们设置Increment type 为None,这样每一条记录都将被附加到我们的dataset里。在Detail标签里允许你键入一个表达式和每一个在datasource里单独的值关联。针对Pie 图表类型,有三个表达式需要我们输入:Key,Value和Label。表达式Key允许你标识Pie图里的一块。如果Key的值出现重复,那么Label和Value的值会关联起来用来覆盖Key的值。一个Key值不能为null。Value的表达式值指定这个Key的数字值。Label表达式的值允许你为并图中每一块指定一个标签。这个表达式的值是可选的,同时默认值为“=”,例如:“A=100”,A是并图中一个块的Key同时100是它的值。

9

确认对chart的修改,保存文件并且点击 按钮启动报表。在图14.9里我们可以看到最后的效果。

10

数据集当报表生成的时候,chart会去收集数据然后存储在相关的dataset里。Dataset类型有:PieCategoryTime periodTime seriesXYXYZHigh-Low可以把dataset想成是一个表格,每一个dataset都有不同的列(fields)。当一条新记录插入到dataset里时值将会被添加到fields里。

11

图表属性我们可以通过图显示的窗口来管理chart的外观。在这个窗口里你可以查看并编辑charts和graphs的通用属性(如title,图例等)。你可以使用表达式编辑框来更改Chart title 和Chart subtitle表达式

12

JasperReports只是利用了JFreeChart图表库的一小部分功能。如果你想自定义一个图表你可以写一个实现下面的接口的类:Net.sf.jasperreports.engine.JRChartCustomizer从这个接口中我们只需要实现一个方法:Public void customize(JFreeChart chart,JRChart jasperChart);在这个方法里用JFreeChart和JRChart作为它的参数。JFreeChart作为第一个参数通常是用来产生图片的,第二个参数包含用户在设计阶段一些参数。

13

同为比较常用的java报表生成工具,FineReport对图表的解决方案和实现方法与ireport有所不同,具体实现思路和步骤如下,供ireport使用者借鉴:

14

FineReport中的图表是用帆软自主研发的HTML5图表技术实现的,并不是靠第三方插件实现的,目前FineReport实现了:柱形图、折线图、条形图、饼图、面积图、散点图、气泡图、雷达图、股价图、仪表盘、全距图、组合图、地图、甘特图、gis地图、圆环图等样式的图表,同时提供了多种图形组合设计。具体的图表制作方法如下:

15

1. 图表制作流程图表制作流程如下图:

16

该章节我们以下图所示的柱形图为例,展示各个地区产品类型的销量情况,为大家简单的介绍下图表的制作流程。

17

2. 示例2.1 准备数据在制作图表前,需要先定义图表的数据来源。在上面的图表制作流程中提到数据来源有两种类型,数据集数据源和单元格数据源,本章节使用数据集作为数据源,如果需要使用单元格数据源,可查看定义图表单元格数据源。新建工作薄,添加数据集,SQL语句为SELECT * FROM [销量],使用销量表作为图表的数据来源。

18

2.2 插入图表并选择图表类型图表有两种插入方式:单元格图表与悬浮图表,该例中我们以悬浮图表为例,单元格图表的插入方式请查看单元格图表。点击工具栏中的插入>悬浮元素>插入图表,弹出图表向导,选择图表类型如柱形图,如下图:注:插入图表和选择图表类型一般性是在一起完成的。

19

2.3 定义图表数据选择完图表类型后,点击确定,返回报表主体界面,选中悬浮图表,在报表主体右侧上方的图表属性表中设置图表属性,选择图表属性表-数据,设置柱形图的数据,如下图:

20

设置图表数据,首先要选择数据来源,前面我们新建了一个数据集ds1,这张图表的数据来源于数据集数据,选择好数据来源之后,为分类轴、系列名、系列值绑定数据集中的字段,用图表来展示数据集中的数据。分类轴:就是图表的横轴,即x轴,表示数据是按照什么分类显示的;系列名:系列就是图表的纵轴,即y轴,系列名称表示每个分类下数据是按照什么顺序显示的;系列值:就是每个系列的值;汇总方式:对系列值的计算方式。

21

2.4 图表样式设置·         标题设置选中图表,在设计器右侧上方会出现图表属性表,选择图表属性表-样式>标题,增加图表标题为:地区产品销量,如下图:

22

系列标签设置选择图表属性表-样式>标签,勾选标签,显示出每个系列的值:注:还可以给图表设置其它图表样式。

23

2.5 保存模板保存模板,预览便可以看到效果如上图。

推荐信息