ireport+jasperreport+jfreechart完成数据分析

最近在做报表的时候需要对数据进行分析并以饼形图,折线图等形式进行展示,为此使用jfreechart配合ireport和jasperreport配合使用,以达到生成PDF文档,并同时在文档中显示数据以及对数据进行分析后的各种图(主要为饼形图,折线图,柱状图等)的效果。jasperreport+ireport在前文已经讲述过,这里就不在多说了,重点说一下如何配合jfreechart生成分析图吧。主要思路是在jrxml文件中添加图片控件,图片空间引用变量打到将生成的图片画到pdf文件中的目的。我们需要做的步骤如下:

1.添加jar包引用,主要使用的jar如下:

2.在fontpath标签中引入上述中文包,然后在viewers标签下选择打开pdf文件的程序:

3.新增变量.如pieJfreeChart,Variable Class为net.sf.jasperreports.engine.JRRenderable,Calculation为System,Reset type为Report,Increment type 为None.

net.sf.jasperreports.engine.JRRenderable为jasperReport一个专门用来处理图表问题公共接口.

4.新增一个图片元素,并设置图片里的属性.将Image Expression设置为刚才的变量$V{jfreeChart};Expression Class为net.sf.jasperreports.engine.JRRenderable;Scale Image为Fill Frame;Horizontal Alignment为Left;Vertical Alignment为Top;Evaluation
Time为Now.

5.ireport的工作基本完成,下面编写JAVA代码.新建一个类,继承JRDefaultScriptlet类,覆盖afterReportInit()方法,将画图的代码写在该方法里,并将最后的jfreeChart实体,用this.setVariableValue()方法塞到报表的变量里,以填充变量成为图形.

public class JChartReport extends JRDefaultScriptlet {

	public static JFreeChart jrchar;

	public void afterReportInit() throws JRScriptletException {
		/** 画出饼形图 **/
		createPie();

		/** 画出折线图 **/
		createZXT();

		/**画出柱形图**/
		createCircular();
	}

	/**
	 * 画出饼形图
	 *
	 * @throws JRScriptletException
	 */
	private void createPie() throws JRScriptletException {
		DefaultPieDataset dateset = LineCharts.createPieDataset();
		JFreeChart freeChart = LineCharts.createPieChart("用户地区分布饼形图分析", dateset);
		PiePlot3D plot3D = (PiePlot3D) freeChart.getPlot();
		plot3D.setNoDataMessage("无数据被展示");

		// 设置$F{jfreeChart}变量的值
		this.setVariableValue("pieJfreeChart",
				new JFreeChartRenderer(freeChart));
	}

	/**
	 * 画出折线图
	 * @throws JRScriptletException
	 */
	private void createZXT() throws JRScriptletException {
		DefaultCategoryDataset dateset = new DefaultCategoryDataset();
		dateset = LineCharts.createDataset();
		JFreeChart freeChart = LineCharts.createChart("募集资金折线图分析", dateset);
		CategoryPlot cp = (CategoryPlot) freeChart.getPlot();
		cp.setNoDataMessage("无数据被展示");
		// 设置$F{jfreeChart}变量的值
		this.setVariableValue("lineJfreeChart", new JFreeChartRenderer(
				freeChart));
	}

	/**
	 * 画出柱状图
	 * @throws JRScriptletException
	 */
	public void createCircular() throws JRScriptletException{
		CategoryDataset circulardataset = LineCharts.createCircularDataset();
		JFreeChart freeChart = LineCharts.createCircularChart("资金分析柱形图",circulardataset);
		CategoryPlot plot = freeChart.getCategoryPlot();//设置图的高级属性
		plot.setNoDataMessage("无数据被展示");
		// 设置$F{jfreeChart}变量的值
		this.setVariableValue("circularJfreeChart", new JFreeChartRenderer(
						freeChart));
	}
}

6.为了让图形可以在ireport的调试中显示,我们将上面这个类编译成class文件后,打包成jar包,再在ireport中将JAR包引用.工具->选项->classpath->add jar   加入我们打好的jar包,并打上勾将期引用.你的项目属性中将Scriptlet class设置成为你引用的JAR包中的class文件.Language改为java.

7.指定ScriptClass:

8.最后看一下生成效果:

时间: 2024-09-29 20:46:15

ireport+jasperreport+jfreechart完成数据分析的相关文章

【iReport+JasperReport】1.iReport与JasperReport基础

1.什么是iReport与JasperReport 提到iReport,就不得不先说一下JasperReport.JasperReport是一个报表制作程序,用户按照它制定的规则编写一个XML文件,然后得到用户需要输出的格式的文件.它支持输出的文件格式包括PDF.HTML.XML.CSV等等. 而我们使用JasperReport来制作报表时,可以分为以下两种方法: (1)直接用程序定义一个报表 (2)写一个XML文件来描述这个报表,通常需要借助iReport JasperReport做报表时用的

IReport+JasperReport+Applet报表打印

实现思路: [准备]使用IReport设计并编译报表模版. [服务端]使用JSP完成报表内容填充并获得打印对象. [客户端]使用Applet完成报表打印过程. 这种实现方式需要客户端安装JRE,及打印机驱动. 下面逐步分解: 1.[准备]使用IReport设计并编译报表模版. IReport的安装过程略--. 创建1个简单的报表并编译: 2.[服务端]使用JSP完成报表内容填充并获得打印对象. a.在工程中引入依赖的JAR包,根据报表的组件可能有变化,此处只根据样例报表,引用少数几个. b.编写

iReport+jasperreport创建子表的几种方式(1)

在制作报表的过程中,子表是必不可少的,今天就研究了一下制作子表的几种方式 一.连接数据库创建子表 以MySQL为例: 1)iReport 创建父表 这个就是创建一个新的表格,不过记得数据源要选择mySQL ,其他的数据库数据源也一样的. 2)创建好之后,我们来创建子表,在组件面板找到拖动到父表当中的任意一个地方,我是放到detail里面的 它会产生一个向导 一路next下去,只是在最后一项选择use empty datasource,不过选其他的也行,待会我们还要修改 3)说一下原理:这种方式就

今天必须完成ireport+jasperreport转成pdf

中午之前解决字体问题 2.问题总结 (1)Caused by: java.lang.NoSuchMethodException: Unknown property 'objectModelBean98' on class 'class com.tc.archves.model.accout.Appraisal' 这是由于报表的字段和javabean的属性名称不一致错误,只要在报表新建一个与javabean属性一样名称的字段即可

Ireport+JS处理扫描中文二维码

关于JasperReport的基础应用参考: IReport+JasperReport+Applet报表打印 应用IReport+JasperReport处理含中文二维码的思路与过程. 在报表中展现二维条码. 适应扫描器操作处理(中文转义). 结合JS使用条码. 第一部分 在报表中展现二维条码: 参考:iReport中产生二维条码(QR Code) 思路:应用zxing工具包生成二维码的图形,并写入在IReport报表的图像组件中. 步骤1:下载core.jar和javase.jar. 步骤2:

iReport连接Mysql创建图表报表

列举一下需要的资源: 1.mySql数据库安装好的 2.iReport+jasperreport配置好 3.我用的是Myeclipse,MySQL的驱动jar包不要忘记 第一部分:创建数据库连接 package com.mySqlsource; import java.sql.Connection; public class Database { private String dbUrl = "jdbc:mysql://localhost:3306/bookdb"; private S

【转帖】四种BI 开源工具介绍-SpagoBI,openI,JasperSoft,Pentaho

四种BI 开源工具介绍-SpagoBI,openI,JasperSoft,Pentaho 1 BI系统的简述 从技术角度来说 BI 包含了 ETL.DW.OLAP.DM等多环节.简单的说就是把交易系统已经发生过的数据,通过ETL工具抽取到主题明确的数据仓库中,OLAP后生成Cube或报表,透过Portal展现给用户,用户 利用这些经过分类.聚集.描述和可视化的数据,支持业务决策. 这些众多的BI项目从规模和对BI系统支撑的完善程度上来说,大体可以分为Framework.Stand-alone T

手机进销存系统

花了将近两个月的时间学习了一个企业级进销存项目,已经结束了两周多,现在终于有时间来对这个项目的学习做个总结了! 一.首先介绍下这个项目 (注:本人目前大三,专业为信息管理,与编程沾边不多.而我对编程很感兴趣,从大一下期开始主要通过看书和视频自学学习java编程!). 项目名称:手机进销存系统(Mobile SCM) 主要开发技术:Struts2+Spring+ibatis+jQuery 数据库:MySql5.1(Navicat客户端管理工具) 服务器:tomcat7.0 建模工具:ER/Stud

如何使用jasper生成pdf报表

1.1   iReport与JasperReport简介 JasperReport是报表的引擎部分,界面设计是用iReport. JasperReport是一个报表制作程序,用户按照它制定的规则编写一个XML文件, 然后得到用户需要输出的格式文件.它支持输出的文件格式包括PDF,HTML,XML,XLS,CSV等等. 1.2   工作流程简介 JasperReport的工作流程:首先有个xml文件,从xml文件编译出.jasper类型的文件, 而以后我们真正要使用的就是编译后的jasper文件.