iReport5.6.0 linechart 制作方法

标签: ireport5 linechart 制作 | 发表时间:2014-10-11 21:09 | 作者:hbsong75
出处:http://blog.csdn.net

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”按钮,如下图:

 选择报表路径,输入报表名称:“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” 

下一步,设置具体的类名和方法,如下图:

注:注意类的全名和方法名要与创建的类完全一致,通过“Test”按钮可以测试一下,然后通过的话选择“Save”按钮。

在主窗口中,可以看到当前报表的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”类型,如下图:

 

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

回到主窗口,我们现在的报表样子如下:

 

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的效果如下:


作者:hbsong75 发表于2014-10-11 13:09:04 原文链接
阅读:94 评论:0 查看评论

相关 [ireport5 linechart 制作] 推荐:

iReport5.6.0 linechart 制作方法

- - CSDN博客研发管理推荐文章
iReport 官网和文档上关于chart设计以饼图和JDBC源作为例子,但更多的情况下由于报表中的数据需要首先加工处理,因此更多的是从JavaBeans set datasource从获取数据,另外linechart也是使用很多的一种chart工具,本文就记录在iReport中通过JavaBeansset datasource 获取数据,继而生成linechart报表的过程.

模型制作

- 小鱼儿 - 非正常人类研究中心 – Mtime时光网
1.材料:一大袋的一次性筷子(花了60块钱);5支502胶水;5张粗砂纸;记号笔一只;锋利的美工刀片若干,破剪刀一把. 就是这种屌毛筷子,质量也太他妈的差了点,80%都是弯的 . 随便提一下:我的脚丫子还是蛮性感滴 . 开始动工了!!  先做门框跟房子的底架. 3.不好意思,忘了交代一下了,我是先画图纸的,看到那张纸了没有.

教你制作蕾丝灯

- 毛毛鸭 - 玩意儿
很可爱和容易,需要准备一个大气球、壁纸胶,还有漂亮的花边布料即可. 将气球吹好,将壁纸胶刷在布料上,然后将布料粘贴在气球上,等1天或者更长时间过后,凝固住了,就将气球放气取出,一个漂亮的蕾丝灯就出现了. 本文原始链接:http://www.cngadget.cn/doily-lamp-diy-mdp.html.

cocos2d+TexturePackerGUI动画制作

- - CSDN博客移动开发推荐文章
转载请注明出处: http://blog.csdn.net/oyangyufu/article/details/25168047. 1、下载安装TexturePackerGUI. 地址: http://www.codeandweb.com/texturepacker. 2、制作plist文件和png图片.

Vizualize.me:为你制作图形化简历

- zjk - 爱范儿 · Beats of Bits
Chris Spurlock 漂亮的图形化简历敲开郝芬顿邮报大门,这个消息在微博传播后,被许多人转发,有人也评论说,自己想弄个这样的简历展示一下. 但是制作信息图并不是每个人都能做到的. Vizualize.me 是一个新的初创公司,他的创始人 Eugene Woo 正是从 Chris Spurlock 的事情得到了启发.

Linuxer:制作自己的Linux ID Card吧

- rex - Wow! Ubuntu
Super Boot Manager的作者Alessandro Lanave,又为Linuxer带来了一个web程序,制作Linux ID Card ,Card效果如图. 可以把ID Card做为论坛签名,博客签名,任何你需要的地方. 当然,如果觉得没有自己喜欢的发行版的模板,可以向Alessandro Lanave提交哦,.

为 OpenStack Nova 制作 Ubuntu 镜像

- Sai - vpsee.com
最近超级忙,被 Mesh Potato 的项目折腾的不行,发现只要什么东西沾上 “分布式、集群” 这些东西事情就变得格外复杂,一台 Asterisk 服务器做 VoIP 容易,n 台 Asterisk 服务器做集群就不容易;一台 Xen/KVM 服务器做虚拟机容易,n 台 Xen/KVM 服务器做云计算就不是那么容易.

如何制作巧克力碗

- Yu - 玩意儿
很有趣的方式啊,将气球吹好后将巧克力抹上去,然后等凝固后,放掉气球的气就形成了巧克力碗了. 本文原始链接:http://www.cngadget.cn/chocolate-bowls.html.

如何制作卡通风格PPT

- muqing - 般若黑洞
你可能一直在四处寻找适于PPT的图片素材,可能已经积累了一大堆网站,看起来像是卓有成效了. 不过真的做起来你会发现自己不可能胸有成竹,因为你发现制作时需要的素材几乎是无限的,所以你花了大把大把的时间来做这件实际上微不足道的事情,哦,真的羡慕你有这么多时间. 有没有什么办法,既不需要太多素材又能做出精美的PPT呢.

谈工作型PPT的制作

- Ivan - 人月神话的BLOG
首先要明确是做哪方面的PPT,根据目标进行破题,破题后形成大致的框架结构,支持PPT的一级和二级目录. 工作中常见的PPT包括方案类的PPT,工作总结类的PPT,项目汇报类的PPT,专题培训类的PPT. 破了这个再来考虑传递的东西应该是如何一步步传递,传递的结构应该如何. 方案类的PPT可以延续IT咨询或问题分析和解决的标准思路,即问题定义,问题分析,解决方法,初步验证.