iReport 官网和文档上关于chart设计以饼图和JDBC源作为样例。但很多其它的情况下因为报表中的数据须要首先加工处理,因此很多其它的是从JavaBeans set datasource从获取数据,另外linechart也是使用非常多的一种chart工具,本文就记录在iReport中通过JavaBeansset datasource 获取数据,继而生成linechart报表的过程。

1.        下载安装iReport5.6.0

http://community.jaspersoft.com/project/ireport-designer/releases下载安装,此步略。

2.        报表制作

打开iReport

1)        生成模板

依次选择 文件->New,选择Blank A4,点击”Open thisTemplate”button。例如以下图:

选择报表路径。输入报表名称:“testLineReport”,例如以下图

继续点“下一步”->“完毕”。

2)        JavaBeans数据源准备

iReport中为了使用“JavaBeansset datasource”,须要指定一个工厂类,用以返回一个包括javabeans的集合,样例程序中的工厂类名是“com.jaspersoft.ireport.examples.SampleJRDataSourceFactory”。当中须要一个静态方法返回Collection<Object> 这种数据结构。另外自然须要定义一个Javabean返回详细的数据(包括set, get方法)。在我们的样例中。因为在linechart中须要用到subdataset,该subdataset须要从一个net.sf.jasperreports.engine.data.JRBeanCollectionDataSource中获取数据。因此还须要多定义一个返回这种数据类型的JavaBean。

综上,我们定义的三个类依次例如以下:

表格 1 TestBean

package com.report.linechart;

public class TestBean {
public Stringcat;
public int value;
public TestBean(){
}
public String getCat(){
returncat;
}
public void setCat(String cat){
this.cat = cat;
}
public int getValue(){
returnvalue;
}
public void setValue(int value){
this.value = value;
}
}

表格 2 TestReport

package com.report.linechart;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
public class TestReport {
JRBeanCollectionDataSource resultsList;
public TestReport(){
}
public JRBeanCollectionDataSource getResultsList(){
returnresultsList;
}
public void setResultsList(JRBeanCollectionDataSource resultsList){
this.resultsList = resultsList;
}
}

表格 3 TestFactory

package com.report.linechart;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Vector;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
public class TestFactory {
public static Collection<TestReport> getTestReports(){
Collection<TestReport> testReports = new Vector<TestReport>();
List<TestBean> testBeans = new ArrayList<TestBean>();
TestBean tb1 = new TestBean();
tb1.setCat("1");
tb1.setValue(1);
testBeans.add(tb1);
TestBean tb2 = new TestBean();
tb2.setCat("2");
tb2.setValue(2);
testBeans.add(tb2);
JRBeanCollectionDataSource resultsList = new JRBeanCollectionDataSource(testBeans);
TestReport tr = new TestReport();
tr.setResultsList(resultsList);
testReports.add(tr);
return testReports;
}
}

注:上面须要着重注意的是TestReport这个bean返回的数据类型是JRBeanCollectionDataSource,它能够作为一个数据源向linechart提供画图数据。

3)        编译完毕后。将上述生成的类增加到iReport的classpath下,以便iReport可以找到它们,例如以下图:

选择“工具“-》”选项“

4)        设置 Report Datasources(工具条上一个插座一样的图标)

如上图,依次选择“ReportDatasources”-》“New”-》“JavaBeans set datasources”

下一步,设置详细的类名和方法。例如以下图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGJzb25nNzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

注:注意类的全名和方法名要与创建的类全然一致,通过“Test”button能够測试一下,然后通过的话选择“Save”button。

在主窗体中,能够看到当前报表的datasource已经设置成 linechartDatasourceFactory了:

5)        报表设计

因为我们主要颜色linechart的设计方法。除了保留Titleband和 Summary band,删除其它的band。注意将linechart放置到 summary band中,假设放置在detail band中,数据源中有多条曲线的话就会分散在多个chart中,而不会显示在一个chart中。

a)        Title band

Title band中我们简单放置一个“StaticField”。显示“Line char test”

b)        Summary band

我们从组件面板拖一个Chart元素到“Summaryband”中。选择“Line”类型,例如以下图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGJzb25nNzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

点击“OK”后进入”Categorychart wizard”,我们先不做设置,直接点击“完毕”button。

回到主窗体。我们如今的报表样子例如以下:

c)        主数据源获取

如上图所看到的,点击“Preview”右边的“Reportquery“图标,选择”JavaBean Datasource”,输入com.report.linechart.TestReport,再点击”Read attributes”,然后将resultsList 增加到选择的列表中。按“OK”确认。

d)        子数据源

回到主窗体后,选择“ReportInspector”根节点“testLineReport”。右键菜单选择”Add Dataset“,设置例如以下:

下一步:(选择先前设置的主数据源linecharDatasourceFactory)

下面先缺省下一步直到完毕。

然后在主窗体 “Report Inspector”中找到节点“subDataSet”。右键菜单选择”EditQuery“。同上选择JavaBean Datasource,输入TestBean的全路径后读出属性cat和value增加选择列表。

通过上述步骤,报表的主数据源和linechart的子数据源都已经关联好了。以下设置linechart的Chart Data。

e)        Chart Data设置

在报表窗体的Summary band中选中linechart元素,按右键在弹出菜单中选择“Chart Data“,然后做例如以下设置:

在”Dataset” tab 页中:

Sub dataset选择上面定义的“subDataSet”;在”Connection/Datasource exp”总选择 use datasourceexpression。然后输入“$F(resultsList)”作为子数据源获取数据的来源。而 resultsList正是我们定义的JRBeanCollectionDataSource类型的数据源。

在“Detail” tab页中:

我们选择增加两条曲线的数据。“Series expression”用来区分曲线,”Category expression”是横坐标,”Value expression”是纵坐标

到此,生成linechart的配置所有结束。

3.        执行Preview的效果例如以下:

iReport5.6.0 linechart 制作方法的更多相关文章

  1. Windows PE3.0制作方法(从Win7中提取制作)

    Windows PE3.0制作方法(从Win7中提取制作 在d:新建文件夹winpe,在winpe中新建sources.pe3和new文件夹,把附件中提供的工具imagex连文件夹一起放到winpe目 ...

  2. Xcode6.1标准Framework静态库制作方法。工程转Framework,静态库加xib和图片。完美解决方案。

    http://www.cocoachina.com/bbs/read.php?tid-282490.html Xcode6.1标准Framework静态库制作方法.工程转Framework,静态库加x ...

  3. gif动图快速制作方法(附工具)

    现在写博客或是wiki的过程中,会经常引用到图片,特别是客户端经常与页面相关所以截图不可避.但是越来越多的效果仅仅一张图片是无法清楚的描述.并且博客或是wiki也是支持gif图的.gif图的制作方法有 ...

  4. INNO 补丁制作技术, 打开 INNO 补丁制作方法的第一页

    INNO 补丁制作技术, 打开 INNO 补丁制作方法的第一页 作者:xin 日期:2005-09-23 字体大小: 小 中 大   VPatch 在 INNO 中的应用. VPatch 属于专为NS ...

  5. 总结Allegro元件封装(焊盘)制作方法[修整]

    总结Allegro元件封装(焊盘)制作方法 在Allegro系统中,建立一个零件(Symbol)之前,必须先建立零件的管脚(Pin).元件封装大体上分两种,表贴和直插.针对不同的封装,需要制作不同的P ...

  6. RFID标签天线的三种制作方法

    在RFID标签中,天线层是主要的功能层,其目标是传输最大的能量进出标签芯片.RFID天线是按照射频识别所要求的功能而设计的电子线路,将导电银浆或导电碳浆网印在PVC.PC或PET上,再与面层.保护层和 ...

  7. gif动图快速制作方法(附工具)(转)

    现在写博客或是wiki的过程中,会经常引用到图片,特别是客户端经常与页面相关所以截图不可避.但是越来越多的效果仅仅一张图片是无法清楚的描述.并且博客或是wiki也是支持gif图的.gif图的制作方法有 ...

  8. 本教程针对HBuilder5.0.0,制作日期2014-12-31(从HBuilder工具上获得)

     /*注:本教程针对HBuilder5.0.0,制作日期2014-12-31*/创建HTML结构: h 8 (敲h激活代码块列表,按8选择第8个项目,即HTML代码块,或者敲h t Enter)中 ...

  9. 简单介绍RPM包制作方法

    RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中.它生成具有.RPM扩展名的文件.使用r ...

随机推荐

  1. c++ 深浅拷贝

    对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a;而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量.下面看一个类对象拷贝的简单例子. #in ...

  2. [LeetCode]题解(python):106-Construct Binary Tree from Inorder and Postorder Traversal

    题目来源: https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/ 题意分析 ...

  3. Eclipse+ADT的环境搭建

    Index: . Java环境变量的设置 . Android环境变量的设置 1.Java环境变量的设置 A.属性名称:JAVA_HOME 属性值:C:\Program Files\Java\jdk1. ...

  4. Maven本地

    <localRepository></localRepository>

  5. PCB抄板评估需要关注的因素

    减少PCB抄板的反复是可能的,但这依赖于抄板前期工作的完成情况.多数时候,越是到产品抄板的后期越容易发现问题,更为痛苦的是要针对发现的问题进行更改.然而,尽管许多人都清楚这个经验法则,但实际情况却是另 ...

  6. 如何使用robots不让百度和google收录

    如何使用robots不让百度和google收录   有没有想过,如果我们某个站点不让百度和google收录,那怎么办? 搜索引擎已经和我们达成一个约定,如果我们按约定那样做了,它们就不要收录. 这个写 ...

  7. maven 添加自己的包

    mvn install:install-file -Dfile=d:/flea.jar -DgroupId=com.flea.bussiness -DartifactId=flea -Dversion ...

  8. hdoj 3478 Catch(二分图判定+并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3478 思路分析:该问题需要求是否存在某一个时刻,thief可能存在图中没一个点:将该问题转换为图论问题 ...

  9. GLSL中的各种变量总结

    1.uint CreateShader(enum type) : 创建空的shader object; type: VERTEX_SHADER, 2.void ShaderSource(uint sh ...

  10. hdu 1085 Holding Bin-Laden Captive! (母函数)

    //给你面值为1,2,5的三种硬币固定的数目,求不能凑出的最小钱数 //G(x)=(1+x+...+x^num1)(1+x^2+...+x^2num2)(1+x^5+,,,+x^5num3), //展 ...