`
longgangbai
  • 浏览: 7325209 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【转】iReport+jasperReport之JFreeChart(图表报表)

阅读更多

 说完iReport+jasperReport之scriptlet 下来就得看看图表了,jasperReport的图表完全借助于外部的绘图工具,charts和JFreeChart,其中JFreeChart是目前java最火的一个绘图工具了,还是引用JFreeChart简单使用 来实现我们的图表吧,说到这里澄清一下,本篇写的是jasperReport的图表,下来会专门写一篇关于jasperReport图片报表。
        jasperReport不重复发明车轮,在报表中是以一个变量的方式引入外部图表的,下来我们看看是怎么实现
的,新建一变量jfreeChart 如图:

        紧接着我们在报表上放置一图片控件,下来一篇我会详细说说图片问题,右击设置图片控件属性,如图所示:

net.sf.jasperreports.engine.JRRenderable为jasperReport一个专门用来处理图表问题公共接口,一切OK,现在就是这个变量怎么才能吧jfreechart传递到报表中呢,还记得上篇的scriptlet吗?
新建一JChartReportDemo.java类,继承自JRDefaultScriptlet,当然要实现那些方法不过大部分我们都是空实现而已,我们只要在afterReportInit方法内绘制图表然后在set进去我们定义的那个变量即可:

public void afterReportInit() throws JRScriptletException {
        
        
//create pie chart dataset
        DefaultPieDataset dateset = new DefaultPieDataset();

        
//set dataset value
        dateset.setValue("Chinese"108);
        dateset.setValue(
"Math"110);
        dateset.setValue(
"English"74);
        dateset.setValue(
"Science Department"226);
        
        
/*
         * create jfreeChart object
         * the first parameter is pie chart title
         * the secend parameter is dataset of pie chart
         * the three parameter is boolean value,create chart note
         * the four parameter is boolean value,it's a tooltip of move mouse on
         * configure chart to generate URLs,It's get a PiePlot3D object
         * 
         
*/

        JFreeChart freeChart 
= ChartFactory.createPieChart3D("Report Pie Chart", dateset, truetruefalse);
        
        PiePlot3D plot3D 
= (PiePlot3D) freeChart.getPlot();
        plot3D.setNoDataMessage(
"No data to display");
        
        
// set variable "jfreeChart" value
        this.setVariableValue("jfreeChart"new JFreeChartRenderer(freeChart));
    }

其中plot3D.setNoDataMessage("No data to display");这一句的意思是当没有显示出图表或是图表没有数据不显示时会显示我们定义的这些信息。

this.setVariableValue("jfreeChart"new JFreeChartRenderer(freeChart));

这一句当然是set数据了,JFreeChartRenderer这个类是JRRenderable接口的间接实现,从API上看jasperReport已不推荐我们使用了。
    OK,我们test一下吧!JChartReportMain.java

package org.bulktree.ireport.chart;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashMap;

import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;

/**
 * 
@author bulktree Email: laoshulin@gmail.com
 * @date Nov 28, 2008
 
*/

public class JChartReportMain {
    
public static void main(String[] args) {
        String path 
= "D:/workspace/JFreeChartReportDemo.jrxml";

        File file 
= new File(path);
        InputStream in;
        
try {
            HashMap parameters 
= new HashMap();
            parameters.put(
"ReportTitle""LAOSHULIN");
            in 
= new FileInputStream(file);
            JasperReport jasperReport 
= JasperCompileManager.compileReport(in);
            JasperPrint jasperPrint 
= JasperFillManager.fillReport(jasperReport,
                    parameters, 
new JREmptyDataSource());
            JasperViewer viewer 
= new JasperViewer(jasperPrint);
            viewer.setVisible(
true);
        }
 catch (Exception e) {
            e.printStackTrace();
        }

    }

}

看过前面几篇应该对这个相当熟悉了吧!

    iReport+jasperReport之JFreeChart(图表报表) 中提到图片控件,下面就看看jasperReport怎样处理图片吧!
新建一空白报表,分别画两个静态文本字段和图像控件上去

        新建两个参数分别为:imageParam和isShowImage,其中imageParam用来指定图片路径,isShowImage用来指定是否显示图片的。
    右击查看图片控件属性:分别设置图片参数和控制打印的表达式:



ok!这个就不用解释了吧!试试就知道啦

JasperReport jasperReport = (JasperReport) JRLoader
                    .loadObject(
"D:\\workspace\\AppletTest.jasper");
            HashMap mapParam 
= new HashMap();
            mapParam.put(
"imageParam""D:\\workspace\\eg_smile.gif");
            
/*
             * 此参数用来控制是否显示图片
             * 第二个参数在报表中设置为String类型
             
*/

            mapParam.put(
"isShowImage""true");
            
// 生成jasperPrint对象
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,
                    mapParam, 
new JREmptyDataSource());

    关于jasperReport图片处理很简单google一下很多啊,最近又开始忙了突然想起上篇遗留这个问题,所以抽空写下来,算是对上篇的一个补充吧!以后有时间会继续写下去,国际化、corsstab、web端打印、纯java定制复杂报表等。

分享到:
评论

相关推荐

    jasper+ireport+jfreechart导出html.excel.word.pdf

    在这个主题中,我们将深入探讨JasperReports、iReport以及JFreeChart这三款组件如何协同工作来实现报表的多样化导出。 首先,JasperReports是Java平台上的一个报告库,它允许开发者设计复杂的报表,并以多种格式...

    iReport5.6&Jasperreport;开发报表所需全部jar.zip

    3. **Third-party Libraries**: 开发报表可能需要一些额外的库,比如Apache POI用于处理Microsoft Office格式,或者JFreeChart用于生成图表。这些第三方库的JAR文件也会在这个压缩包中。 4. **Database Drivers**: ...

    JasperReport+iReport报表工具

    JFreeChart是用于生成各种图表的Java库,JasperReport可以集成JFreeChart,为报表提供图表支持。JSP(JavaServer Pages)是一种用于生成动态网页内容的技术,JasperReport可以将报表导出为JSP页面,便于在Web环境中...

    JasperReport+iReport报表工具详细开发手册

    JasperReport+iReport是一种强大的报表开发工具组合,用于在Java应用程序中创建复杂的报表,具有非常丰富的报表展示功能和灵活的数据处理能力。本手册将详细探讨如何使用JasperReport和iReport开发报表,以及它们...

    jasperReport +spring 的使用

    - iReport是jasperReport的一个图形化界面工具,用于设计报表模板。 - 安装iReport 0.5.1版本(2005年8月27日发布)。 - 运行iReport.bat文件完成安装。 - 如果需要使用外部字体,则需将字体文件放置于iReport-...

    ireport+javabean

    iReport是一个图形化的辅助工具,其主要作用是通过可视化的方式设计生成JasperReport报表格式文件。iReport支持拖拽式报表编辑、拥有多种向导来简化复杂的报表设计任务,具有丰富的排版和格式化工具,支持将报表转换...

    Jasperreport+ireport 实践操作及web应用

    在JasperReport 2.0.2和iReport 2.0.2版本中,我们可以实现多种功能,包括字段、变量、参数的管理,图像(矢量图和位图)的使用,超链接和锚点的创建,数据源的配置,国际化支持,脚本编写,子报表以及图表的展示,...

    JasperReport+iReport报表工具详细开发手册.pdf

    ### JasperReport+iReport 报表工具详细开发手册 #### 一、简介 JasperReport是一款强大的报表引擎,它能够解析`.jasper`报表定义文件,并最终生成用户友好的报表界面。iReport则是一款可视化的报表模板设计工具,...

    iReport-5.1.0-windows-installer.rar

    iReport 还集成了JFreeChart图表制作包。允许用户可视化地编辑XML JasperDesign文件。用于打印的数据可以通过多种方式获取包括:JDBC, TableModels, JavaBeans, XML,Hibernate(支持HQL查询语言), CSV等。它支持多种...

    JasperReport+iReport 所需jar包

    在Java开发中,报表生成是一项重要的任务,JasperReport和iReport是两个广泛使用的开源工具,用于设计和生成复杂的报表。这两个工具可以帮助开发者创建交互式、动态的PDF、HTML、Excel、CSV等格式的报表。下面我们将...

    jasperreport报表开发小结.docx

    jasperReport+ireport 报表开发小结总结了 JasperReports 的基本概念、特点、类库依赖、开发流程和 ireport 使用说明等内容,为读者提供了一个全面的了解 JasperReports 和 ireport 的报表开发指南。

    ireport300

    iReport 还集成了JFreeChart图表制作包。允许用户可视化地编辑XML JasperDesign文件。用于打印的数据可以通过多种方式获取包括:JDBC, TableModels, JavaBeans, XML,Hibernate(支持HQL查询语言), CSV等。它支持多种...

    ireport 其主要作用是用来以可视化的方式设计

    iReport 还集成了JFreeChart图表制作包。允许用户可视化地编辑XML JasperDesign文件。用于打印的数据可以通过多种方式获取包括:JDBC, TableModels, JavaBeans, XML,Hibernate(支持HQL查询语言), CSV等。它支持多种...

    iReport-4.0.2源代码

    iReport 还集成了JFreeChart图表制作包。允许用户可视化地编辑XML JasperDesign文件。用于打印的数据可以通过多种方式获取包括:JDBC, TableModels, JavaBeans, XML,Hibernate(支持HQL查询语言), CSV等。它支持多种...

    A Tutorial on JasperReports, iReport and JFreeChart

    ### 教程:使用JasperReports、iReport与JFreeChart进行Java报表开发 #### 一、引言 本教程旨在介绍三个开源Java报表工具——JasperReports、iReport及JFreeChart的基本概念与实际应用。这三个工具在报表设计与...

    ireport入门指南+饼状图+柱状图.pdf

    标题和描述中提到的知识点有: 1. iReport入门指南:这部分内容应该是关于如何开始学习和使用...通过学习本文,读者应该能够熟练地使用iReport工具生成各种报表,并对JasperReport和JFreeChart有一个基本的了解。

    Jfreechart简明教程

    iReport 是 JasperReport 的可视化设计工具,它允许开发者通过直观的界面设计报表模板,其中可以包含 JFreeChart 创建的图表。通过学习 `CSDN技术中心 iReport 和 Jasperreport 整合开发web报表向导.pdf`,你可以更...

    报表设计基础及JasperReort,JFreeChart简明教程

    在实际应用中,JasperReport常常与iReport或Jaspersoft Studio一起使用,这些是图形化的报表设计工具,能提供更加直观的设计体验。 JFreeChart则是Java平台上的一个强大的图表库,它能够生成各种类型的图表,如折线...

Global site tag (gtag.js) - Google Analytics