iReport5.6.0 linechart 制作方法
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 制作方法的更多相关文章
- Windows PE3.0制作方法(从Win7中提取制作)
Windows PE3.0制作方法(从Win7中提取制作 在d:新建文件夹winpe,在winpe中新建sources.pe3和new文件夹,把附件中提供的工具imagex连文件夹一起放到winpe目 ...
- Xcode6.1标准Framework静态库制作方法。工程转Framework,静态库加xib和图片。完美解决方案。
http://www.cocoachina.com/bbs/read.php?tid-282490.html Xcode6.1标准Framework静态库制作方法.工程转Framework,静态库加x ...
- gif动图快速制作方法(附工具)
现在写博客或是wiki的过程中,会经常引用到图片,特别是客户端经常与页面相关所以截图不可避.但是越来越多的效果仅仅一张图片是无法清楚的描述.并且博客或是wiki也是支持gif图的.gif图的制作方法有 ...
- INNO 补丁制作技术, 打开 INNO 补丁制作方法的第一页
INNO 补丁制作技术, 打开 INNO 补丁制作方法的第一页 作者:xin 日期:2005-09-23 字体大小: 小 中 大 VPatch 在 INNO 中的应用. VPatch 属于专为NS ...
- 总结Allegro元件封装(焊盘)制作方法[修整]
总结Allegro元件封装(焊盘)制作方法 在Allegro系统中,建立一个零件(Symbol)之前,必须先建立零件的管脚(Pin).元件封装大体上分两种,表贴和直插.针对不同的封装,需要制作不同的P ...
- RFID标签天线的三种制作方法
在RFID标签中,天线层是主要的功能层,其目标是传输最大的能量进出标签芯片.RFID天线是按照射频识别所要求的功能而设计的电子线路,将导电银浆或导电碳浆网印在PVC.PC或PET上,再与面层.保护层和 ...
- gif动图快速制作方法(附工具)(转)
现在写博客或是wiki的过程中,会经常引用到图片,特别是客户端经常与页面相关所以截图不可避.但是越来越多的效果仅仅一张图片是无法清楚的描述.并且博客或是wiki也是支持gif图的.gif图的制作方法有 ...
- 本教程针对HBuilder5.0.0,制作日期2014-12-31(从HBuilder工具上获得)
/*注:本教程针对HBuilder5.0.0,制作日期2014-12-31*/创建HTML结构: h 8 (敲h激活代码块列表,按8选择第8个项目,即HTML代码块,或者敲h t Enter)中 ...
- 简单介绍RPM包制作方法
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中.它生成具有.RPM扩展名的文件.使用r ...
随机推荐
- AsyncSocket 使用
今天使用AsyncSocket模拟及时通信,在这里记录一下,免得以后自己又犯相同的错误 1>创建客户端和服务器socket /** * 设置socket */ - (void)setupSock ...
- java动手动脑课后思考题
public class SquareInt { public static void main(String[] args) { int result; ; x <= ; x++) { res ...
- Python 城市菜单详解(超详解)
print("--------城市查询系统---------") print("--------按数值进行查询--------") menu={" ...
- oracle整体知识的大致介绍(1)-概念
表空间: oracle允许不同类型的数据分开存放,表空间是数据库的逻辑划分. 数据文件: 表空间由同一磁盘上的一个或多个文件组成,这些文件叫做数据文件. 实例: 是存放和控制数据库的软件机制. ora ...
- 一个最简的 USB Audio 示例
经过了两三个月的痛苦,USB 协议栈的 Audio Device Class 框架已具雏形了,用了两三天时间,使用这个框架实战了一个基于新唐 M0 的最简单的 USB Audio 程序,可以作为 US ...
- AnyEvent::HTTP 实现异步请求
异步http: jrhmpt01:/root/async# cat a1.pl use LWP::UserAgent; use utf8; use DBI; use POSIX; use HTTP:: ...
- 宣布发布 Windows Azure 导入/导出服务的预览版以及 Web 和移动解决方案场景的若干增强功能
客户评估基于云的存储解决方案时,面临的挑战之一是以经济高效.安全快速的方式从 Blob 存储区移进和移出大量数据.今天,我们很高兴地宣布发布 Windows Azure 导入/导出的预览版,这款新服务 ...
- live555学习经验链接一
live555学习经验链接:http://xingyunbaijunwei.blog.163.com/blog/#m=0&t=1&c=fks_084071082087086069082 ...
- JAVA GUI学习 - JDialog模式、非模式窗口组件学习
/** * JDilog学习笔记 * @author Wfei * */ public class JDialogKnow extends JFrame { JDialog jDialog; JBut ...
- 【剑指offer】第一个仅仅出现一次的字符
转载请注明出处:http://blog.csdn.net/ns_code/article/details/27106997 题目描写叙述: 在一个字符串(1<=字符串长度<=10000,所 ...