提示:在有些板块,文中的图片看不到,建议到我的blog浏览文章:http://blog.csdn.net/jemlee2002/
文章将会涉及3个方面的内容:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
第一部分:使用iReport制作报表的详细过程(Windows环境下)
第二部分:使用Jasperreport作为报表控件开发胖客户端报表应用
第三部分:使用Jasperreport作为报表控件开发Web报表应用
1、
概述
我们对第一部分的内容做个简要的回忆,第一部分主要是介绍使用iReport如何制作一个数据报表,我认为文章比较详细的介绍“如何从零到满足大部分需求报表出现”。但是文中没有涉及Jasperreport的任何内容,目的是让你纯粹的理解如何做报表,因为做报表和把报表内嵌到应用程序编程是可以分工的,便于整合也便于分解。
我们知道iReport是一个Jasperreport的前端开发工具,iReport用来制作和预览报表,为应用使用报表提供足够的前端支持。现在简要的介绍Jasperreport是如何工作的,这样你可以更好的理解iReport是如何帮助Jasperreport实现前端的工作,其实这些工作在我们看来就是“脏活”,为什么呢?看看下面的资料就知道了。

通过上图你大概已经明白Jasperreport的工作原理了。首先是要有一个XML文件(一般是以jrxml后缀),那么这个XML文件从那里来呢?做什么用呢? 这个XML文件就是报表的定义文件,整个报表的每一个细节都在这个XML文件之中定义,一个简单报表的xml文件就有几百行,你可以手工编辑这个XML文件(一行一行,一段一段的编辑吧――这就是所谓的“脏活”)。如果是手工制作这个XML文件,单从效率上考虑就不允许,特别是现在很多应用系统的开发时间变得越来越紧张,总是会在时间上出问题。节省时间最好的办法就是充分的利用自动化工具,詹姆斯.马丁的软件工程思想也是反复的强调过程的自动化,如何做到自动化呢?就是充分的利用自动化工具集成到开发流程,说了一大堆不就是为了说要用iReport来做报表吗!这是我们第一部分已经完成的工作,但是这里重要的是理解Jasperreport的工作原理。
2、结合Jbuilder开发胖客户端报表应用
2.1、建立Application
参考Jbuilder有关资料。只要是普通Window窗口应用即可。
2.2、引入JasperReports需要的库文件
通过jbuilder9【Tool】-【configure Libraries】-按最左边的【New】-输入一个名称,比如Report-【add】按钮,导航到iReport的lib目录,把lib目录里面的所有文件引入。如图:

按两次OK回到Jbuilder的开发界面。
2.3、向工程添加Report系列库文件
通过右击工程,选择【properties】-【paths】Label-【Required Libraries】Label-【Add】按钮-选择“Report”-按两次OK回到Jbuilder的开发界面。这样就添加完成了需要的库文件了。这么做是比较理想的,但是报表运行时可能不需要iReport的lib下所有的jar文件。
2.4、在主界面上添加需要的组件
在主Frame添加一个Button和一个Label以及一个TextBox,当然你也可以通过创建菜单连接,如图:

这个窗体时用来做测试用的,实际的界面可能很复杂,其中的TextBox就是为报表的变量做准备的。这里填写的值就是要传递给报表的变量,也就是第一部分定义的带$P{}符号的变量,程序会把他们对应起来。Button的单击事件代码如下:
/**
* RptDialog对话框是用来承载报表的显示。
* @param e
*/
void jButton1_actionPerformed(ActionEvent e) {
//请创建一个对话框类RptDialog
RptDialog dlg = new RptDialog(this.jGroupID.getText());
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation( (frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.show();
}
RptDialog是接下来制作的一个Dialog对象,通过Jbuilder新建一个Dialog对象并命名RptDialog。RptDialog的代码如下:
import java.awt.*;
import javax.swing.*;
import dori.jasper.engine.*;
import dori.jasper.view.*;
import dori.jasper.engine.util.JRLoader;
import java.sql.Connection;
import java.io.File;
import java.util.Map;
import java.util.HashMap;
import mytest.trac.CommectionDB;
/**
* <p>Title: RptDialog </p>
* <p>Description: 报表承载对话框</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: *****</p>
* @author 李克喜
* @version 1.0
*/
public class RptDialog extends JDialog {
JPanel ReportPan = new JPanel();
BorderLayout borderLayout1 = new BorderLayout();
//Bug项目名称
String proname = "";
//显示报表需要的控件
JRViewer jrview;
public RptDialog(String GroupID) {
proname = GroupID;
try {
jbInit();
pack();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void jbInit() throws Exception {
ReportPan.setLayout(borderLayout1);
getContentPane().add(ReportPan);
//装载报表,在Jbuilder工程的目录创建一个Reports文件夹,并把报表的jasper文件搁置在该文件夹。
String reportPath = System.getProperty("user.dir") + "//Reports// BugsRpt.jasper";
JasperReport jasperReport =
(JasperReport) JRLoader.loadObjectFromLocation(reportPath);
//创建数据库的连接,参考java的JDBC编程资料创建连接方式
CommectionDB conndb = new CommectionDB();
//注意:这个连接要求与制作报表时使用的连接一致
Connection conn = conndb.getDbConnection();
//报表配置参数,前文提过的SQL语句的Where条件参数就是与这里对应。
//条件的值可能是通过多种方式得到的,比如上一个页面传递过来的
Map parameters = new HashMap();
//ProjectName就是iReport的变量$P{ProjectName}的名称,参考第一部分的5.6添加参数和使用参
proname就是从界面上获取的值。
parameters.put("ProjectName ", proname);
JasperPrint jasperPrint =
JasperFillManager.fillReport(
jasperReport,
parameters,
conn
);
//装载过程,注意其中的红体字部分
jrview = new dori.jasper.view.JRViewer(jasperPrint);
ReportPan.setLayout(borderLayout1);
ReportPan.setPreferredSize(new Dimension(800, 600));
getContentPane().add(ReportPan, BorderLayout.CENTER);
ReportPan.add(jrview,null);
}
}
到这里,所有需要设置和编程的工作基本完成了。
3、
运行
确定数据库已经启动了,在JBuilder运行应用程序。在TextBox输入有意义的组值,比如“BugWin系统”,这是我的测试值,实际情况是根据你的需要来确定的。单击Button,系统会弹出对话框,运行结果和第一部分6.2、预览报表结果一致。
4、
总结
随着技术的进步,应用环境的不断变化,胖客户端的应用可能会逐渐退出主流,但是它的存在是必要的。所以我要写胖客户端的应用方面的报表使用技术。文中简要明了的介绍了如何使用Jasperreport编程报表程序。希望对你有一点帮助。
分享到:
相关推荐
#### 第二部分:使用 JasperReport 作为报表控件开发胖客户端报表应用 在这一部分,我们将介绍如何使用 JasperReport 在 Java 胖客户端应用程序中集成报表功能。首先,需要将 JasperReport 的 JAR 文件添加到项目的...
#### 第二部分:使用JasperReport作为报表控件开发胖客户端报表应用 在这一部分中,我们将探讨如何使用JasperReport作为报表控件来开发胖客户端报表应用程序。胖客户端应用是指那些在客户端上运行大部分逻辑的应用...
#### 第二部分:使用Jasperreport作为报表控件开发胖客户端报表应用 ##### 2.1 概述 这部分将介绍如何利用JasperReports作为报表控件来开发基于桌面的应用程序。这种类型的报表通常用于离线查看或打印报表。 #####...
#### 第二部分:使用 JasperReport 作为报表控件开发胖客户端报表应用 在这一部分,我们将探讨如何使用 JasperReport 构建基于桌面的应用程序报表解决方案。胖客户端报表应用通常指那些运行在本地计算机上的应用...
二是使用JasperReport作为报表控件开发胖客户端报表应用;三是使用JasperReport作为报表控件开发Web报表应用。本文旨在为初学者和开发者提供实用的操作指南,以帮助他们快速掌握报表设计的核心技巧。 #### 二、使用...
通过以上分析,我们可以看出“JasperReport动态报表归并行数据”涉及到的核心概念包括动态报表设计、数据源处理、数据归并、自定义脚本let以及开发工具的使用。掌握这些知识点,能帮助开发者创建出适应各种业务需求...
JasperReport是一个强大的Java报告库,它允许开发者创建复杂、美观的报表,广泛应用于企业级应用中。在JasperReport中,子报表是用于在主报表内部嵌套其他报表的一个功能,可以用来组织和展示更复杂的结构化数据。...
在构建复杂的报告时,比如使用JasperReport,JavaBean可以作为数据源,帮助我们构造动态、结构化的报告内容。JasperReport是一个强大的开源报告生成库,它允许开发者创建、设计和导出多种格式的报告,如PDF、HTML、...
2. 生成报表传给客户端:使用JasperReport的API生成报表,并将其传给客户端。可以使用HttpServletResponse将报表输出到客户端。 3. 报表另存为多种格式:JasperReport支持多种报表格式,包括PDF、DOCX、XLSX、HTML等...
JasperReport是一款开源的报表工具,广泛应用于Java环境中,为开发者提供了设计、生成和展示复杂报表的功能。它以其灵活性、强大的数据处理能力和丰富的图表选项而备受赞誉。水晶报表(Crystal Reports)是另一款...
### iReport & JasperReport 开发手记:List报表开发与发布 #### 1. 概述 在B/S架构的应用程序开发中,报表处理一直是重要的组成部分。传统的处理方式包括生成CSV文件供用户下载后再行编辑,这种方式不仅效率低下...
### JasperReport+iReport 报表开发手册核心知识点详解 #### 一、JasperReport与iReport概述 **JasperReport** 是一款强大的、灵活的报表生成工具,它能够展示丰富的页面内容,并支持将这些内容转换为PDF、HTML或...
本教程“jasperreport ireport开发java报表入门级教程(完整版)”将引导初学者逐步掌握这些概念和操作,通过实际项目练习,加深理解,提升报表开发能力。教程内容可能涵盖报表设计基础、数据绑定、报表生成、Java应用...
jasperReport+ireport 报表开发小结总结了 JasperReports 的基本概念、特点、类库依赖、开发流程和 ireport 使用说明等内容,为读者提供了一个全面的了解 JasperReports 和 ireport 的报表开发指南。
Struts2 和 JasperReport 的整合是为了解决在 Web 应用中生成复杂报表的需求。JasperReport 是一个强大的开源报表引擎,它允许开发者通过设计模板来生成各种类型的报表,如 PDF、HTML、Excel 等。而 Struts2 是一个...
在实际开发中,你可能还需要考虑如何在Web应用中展示这些报表。可以创建一个RESTful API,接收请求并返回生成的报表,或者直接在页面上嵌入PDF预览。 总的来说,SpringBoot与JasperReport的整合使得报表生成变得...
《iReport-JasperReport 报表开发指南》是一本针对初学者的专业教程,旨在帮助读者掌握使用iReport和JasperReport进行报表开发的核心技术。iReport是一款强大的设计工具,而JasperReport则是一个流行的Java报表库,...
在本项目中,“jasperReport测试项目(含报表设计文件).rar”是一个压缩包,包含了一系列用于JasperReport报表设计的文件,帮助我们理解和实践报表开发。 报表设计是JasperReport的核心功能,通过使用JRXML文件,...
Struts2作为MVC(模型-视图-控制器)架构的一部分,主要用于处理HTTP请求并管理应用程序流程,而JasperReport则是一个强大的报告生成工具,能够创建复杂的报表设计,并以各种格式如PDF、HTML、Excel等导出。...
2. **编译报表模板**:将.jrxml文件编译成.JRDP文件,这是JasperReport可执行的二进制格式。这一步通常在应用启动时完成,或者在需要更新报表模板时动态进行。 3. **数据填充**:在Servlet中,我们需要创建一个...