- 浏览: 1608135 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (603)
- T_java (145)
- T_script&ASP (51)
- T_C/C++ (25)
- T_PowerBuilder (11)
- T_Database (53)
- T_odoo (7)
- T_应用服务器 (50)
- T_专_条形码 (6)
- T_专_负载均衡器 (4)
- T_操作系统 (94)
- T_信息安全 (41)
- T_专_搜索引擎 (14)
- T_L_PHP (58)
- T_L_Delphi (18)
- T_L_.NET、C#、VisualStudio (25)
- T_L_Objective-C (6)
- T_移动开发 (53)
- T_网络 (109)
- T_大数据 (2)
- T_嵌入式 (2)
- T_小众技术 (24)
- T_未分类 (58)
- L_旅游印记 (1)
- L_生活随笔 (48)
- L_中国文化 (18)
- L_户外与生存 (0)
最新评论
-
csbean4004:
不知道哪传来得恶习,发帖子不好好发,故意弄错一些东西,很讨厌
让HTML5支持后置摄像头 -
withthewind:
终于找到一个可以用的了。。。
如何用VBA取得Word文档中的标题前面的序号 -
busbby:
兄弟,无法下载,说文件不完整
一个好用的Outlook ost格式文件转pst文件的工具 -
yijavakevin:
密码啊~解压密码多少?
一个二维条形码组件 -
vipbooks:
你给的那个链接根本无法下载,跳到官网看了下最新版12M,但点下 ...
十步以内完成精细web打印
4、建张报表
当上面的配置都完成后,接下来做我们最想做的事:建报表。
a、从菜单“档案-->开启新档”点开,在弹出框中输入报表名称,名称还是阿猫阿狗随便填,纸张我就用默认的A4纸了,反正先A3,我们的破打印机也打不出来,呵呵。其他选项都不用改,直接“OK”就行了。出来空报表是这样滴:
b、从菜单“Data→报表查询”点开,设定查询语句。在“Report query”框中,点“query designer”按钮,出来查询设计窗口,在其中选中我们建的表“Product”,双击,设计器右边就会出来表结构,每个字段前有复选框用以选择要处理的字段(这个地方有一点不爽的就是需要一个个选字段,没有一个全选)。然后就“OK”了。
再返回到“Report query”设计器上来,刚才生成的SQL已经填充到这里面了,如果没什么要改的,就OK返回了。返回到报表设计窗口,还是白白的一片,刚才生成的SQL去哪里了?
c、给报表添加字段。从工具栏上选择“report fields, variables and parameters”那个按钮(别说找不到),点开。把Fields里面的字段一个个拖到报表设计区。
d、报表设计过程(这里省略xxx字),设计后效果如下:
e、从菜单“建立→执行报表(使用动态连接)”点开,预览一下我们的杰作。当然,也可以点开“建立→执行报表”,区别就是后者不带数据预览,预览的效果是这样的:
f、到这里,报表基本完成了,接下来,只要把生成的XXX.jrxml和XXX.jasper放到我们的应用中去,再写几句代码调用一下就可以了,至于代码如何写,下面接着讲。
5、在应用中使用报表
报表设计好了,如何在程序中使用报表呢,代码挺简单的,而且基本是流程化的,我做的测试代码如下:
package com.javaeye.demo.test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import com.lowagie.text.pdf.PdfWriter;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.export.JRPdfExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;
/**
* <p>Title: ShineTax纳税申报辅助系统</p>
*
* <p>Description: ShineTax纳税申报辅助系统</p>
*
* <p>Copyright: Copyright (c) 2008</p>
*
* <p>Company: WSGroup</p>
*
* @author ShengYoufu(wdmsyf@yahoo.com)
* @version 1.0
*/
public class JasperReportJDBCTest {
public JasperReportJDBCTest() {
}
protected Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/keyshop", "root", "");
} catch (SQLException ex) {
ex.printStackTrace();
}catch(ClassNotFoundException ex){
ex.printStackTrace();
}
return conn;
}
protected void close(Connection conn) {
if (conn != null) {
try {
if (!conn.isClosed()) {
conn.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
conn = null;
}
}
protected byte[] genReport(Connection conn) {
if (conn == null)
throw new RuntimeException("Generate PDF report failed. Database connection is null.");
//获取报表模板
URL url = this.getClass().getResource("/reports/product.jasper");
System.out.println("测试报表模板: " + (url == null ? "未取到" : url.getPath()));
if (url == null || url.getPath() == null) {
throw new RuntimeException("Generate PDF report failed, the report templet file not found.");
}
String path = url.getFile();
path = path.substring(0, path.lastIndexOf("/"));
File reportFile = new File(url.getFile());
if (!reportFile.exists()) {
throw new RuntimeException("Generate PDF report failed, the report templet file not exist.");
}
//构造生成PDF所需要的参数,这些参数根据需要自行决定选择哪些
Map parameters = new HashMap();
parameters.put(JRPdfExporterParameter.IS_ENCRYPTED, Boolean.TRUE); //设定PDF需要加密
parameters.put(JRPdfExporterParameter.IS_128_BIT_KEY, Boolean.TRUE); //使用128位加密
parameters.put(JRPdfExporterParameter.USER_PASSWORD, ""); //查看PDF的所需的密码
parameters.put(JRPdfExporterParameter.OWNER_PASSWORD, "www.xm-l-tax.gov.cn"); //PDF所有者的密码
parameters.put(JRPdfExporterParameter.METADATA_TITLE, "XXX商场货物库存日报表"); //PDF的META标题
parameters.put(JRPdfExporterParameter.METADATA_SUBJECT, "XXX商场"); //PDF的META主题
parameters.put(JRPdfExporterParameter.METADATA_KEYWORDS, "商场,货物,库存,日报表");//PDF关键字
parameters.put(JRPdfExporterParameter.METADATA_AUTHOR, "wdmsyf@yahoo.com"); //PDF的作者
parameters.put(JRPdfExporterParameter.METADATA_CREATOR, "wdmsyf@yahoo.com"); //PDF创建者
parameters.put(JRPdfExporterParameter.PERMISSIONS, PdfWriter.AllowFillIn); //PDF允许填写
byte[] reportData = null;
try {
//载入报表模板
//JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile.getPath());
//生成PDF文件的byte数组
reportData = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters, conn);
} catch (JRException ex) {
throw new RuntimeException("Generate PDF report failed.", ex);
}
return reportData;
}
protected void saveReport(byte[] data, String fileName){
if(data==null || data.length<1)
throw new RuntimeException("Generate PDF report failed. No data found.");
try{
FileOutputStream fos = new FileOutputStream(fileName);
fos.write(data);
fos.flush();
fos.close();
}catch(FileNotFoundException ex){
ex.printStackTrace();
}catch(IOException ex){
ex.printStackTrace();
}
}
public void genAndSaveReport(){
Connection conn = this.getConnection();
byte[] reportData = this.genReport(conn);
saveReport(reportData, "c:/货物库存日报表.pdf");
}
public static void main(String[] args) {
JasperReportJDBCTest test = new JasperReportJDBCTest();
test.genAndSaveReport();
}
}
大家注意红色部分,就是调用报表模板生成PDF的代码。生成PDF如下:
评论
发表评论
-
SpringBoot Fat Jar解压运行
2018-06-28 21:40 2258SpringBoot已经成为当前最流行的微服务 ... -
一句话实现五星评分显示
2018-06-05 08:31 997Python: rate = 1 #rate 取值 ... -
来算google的可视化编程工具——Blockly,不仅仅是玩具
2017-10-16 21:34 33119Blockly - 来自Google的可 ... -
安卓动态分析工具 Inspeckage
2017-08-07 08:46 0工具介绍 一个基于Xposed 开发的应用动态分析工具 g ... -
Android逆向之旅---静态方式破解微信获取聊天记录和通讯录信息
2017-08-07 08:37 0一、猜想数据存放路径 微信现在是老少皆宜,大街小巷都在使用 ... -
破解微信数据库 并查询数据上传服务器
2017-08-07 08:29 0由于工作需求破解了微信的数据库 并获取想要的信息上传服 ... -
安卓黑科技之HOOK详解
2017-08-07 08:21 0本文带大家进入到安卓另一个世界 互联网攻防大战 Xpos ... -
安卓逆向之基于Xposed-ZjDroid脱壳
2017-08-07 08:18 0前言 之前介绍了普通常见的反编译模式 但对于使用了 360 ... -
十步以内完成精细web打印
2017-06-21 11:44 7367注意: 康虎云报表组 ... -
浏览器端精准打印或套打组件
2017-01-18 13:05 6695注意: 康虎云报表 ... -
疯狂软件对Oracle放弃Java EE的看法
2016-08-14 22:38 525来源:http://javaligang ... -
几个Java相关的思维导图
2016-03-17 13:07 954来源:http://blog.csdn.net/jackf ... -
jasperReport Applet 打印
2016-02-01 16:33 868Applet方式的原理是本地下载Applet以及Jas ... -
为Java说句公道话
2016-01-24 10:59 712为Java说句公道话 有些 ... -
Mybatis Generator配置详解(中文)_转
2015-12-17 16:44 917来自: http://www.jianshu.com/p/e ... -
一个提供大量数据模型的网站
2015-12-17 14:00 981网站地址是:http://www.databaseansw ... -
采用ajp代理模式配置Apache+tomcat实现负载均衡(转)
2015-11-13 10:22 869这一种方法,配置简单,性能也高。附AJP介绍: AJP ... -
MyBatis配置文件修改侦测及重载的实现
2015-07-31 13:53 2334MyBatis配置文件修改侦测及重载的实现: /** ... -
Spring optional @PathVariable?
2015-07-09 13:13 913Q: Is it possible to somehow ... -
The forked VM terminated without saying properly goodbye. VM crash or System.exi
2015-07-07 18:22 4289The forked VM terminated witho ...
相关推荐
JasperReport是一个强大的Java报告库,它允许开发者创建复杂、美观的报表,广泛应用于企业级应用中。在JasperReport中,子报表是用于在主报表内部嵌套其他报表的一个功能,可以用来组织和展示更复杂的结构化数据。...
JasperReport是一个强大的开源报告生成库,它允许开发者创建、设计和导出多种格式的报告,如PDF、HTML、Excel等。 标题"使用JavaBean构造JasperReport子报表"涉及到的知识点主要包括以下几个方面: 1. **...
JasperReport是一款强大的开源报告生成库,主要用于设计和打印各种复杂的报表。在6.4.1版本中,它提供了丰富的功能,包括支持动态列的报表设计,这使得开发者可以根据数据的实际情况灵活调整列的数量和内容。这个...
JasperReport是一款强大的开源报表工具,它允许开发者创建复杂、美观的报表,并且支持动态数据处理。在“JasperReport动态报表归并行数据”这个主题中,我们主要讨论如何利用JasperReport来处理和展示动态变化的数据...
JasperReport是一款强大的开源报表工具,它允许开发者创建复杂的数据报告并以多种格式输出,如HTML、JSP、PDF等。在本项目中,“jasperReport测试项目(含报表设计文件).rar”是一个压缩包,包含了一系列用于...
而JasperReport是一款强大的开源报表工具,能够帮助开发者创建、设计和展示复杂的业务报告。将两者整合,可以让SpringBoot应用程序轻松地生成和展示各种类型的报表。 在SpringBoot中整合JasperReport,首先你需要在...
JasperReport 是一个功能强大且灵活的报表生成工具,它提供了许多功能来帮助开发者生成复杂的报表。在报表生成中,交叉报表是一种常用的报表类型,能够将数据按照行和列进行交叉处理,生成一个交叉表。以下是 ...
JasperReport是一款开源的报表工具,广泛应用于Java环境中,为开发者提供了设计、生成和展示复杂报表的功能。它以其灵活性、强大的数据处理能力和丰富的图表选项而备受赞誉。水晶报表(Crystal Reports)是另一款...
JasperReport是一款强大的Java报表工具,它允许开发者创建复杂、多格式的报表,并能与各种数据源集成。本文主要总结了JasperReport报表设计的关键点,包括报表格式定制、数据填充以及显示或打印。 首先,报表格式的...
本文将重点讨论两个备受推崇的开源报表设计工具——JasperReport和BIRT,并通过深入比较它们的特点、功能以及适用场景,帮助你做出更适合项目的决策。 JasperReport是一款强大的Java报表库,它允许开发人员创建复杂...
JasperReport是一款强大的开源报表工具,主要用于生成各种复杂的静态和动态报表。它基于Java,可以很好地与Java应用程序、Web应用和企业级应用集成,提供丰富的报表设计和灵活的数据呈现方式。JasperReport的核心...
JasperReport是一款强大的开源报表工具,广泛应用于Java应用程序中,提供灵活的报告设计和丰富的数据可视化功能。在JasperReport 6.4.0版本中,它继续提升了用户体验,增强了报表设计的灵活性和可扩展性。在这个版本...
JasperReport是一个开源的报表生成库,它可以读取由iReport设计的模板,结合业务数据生成各种格式的报表,如PDF、HTML、Excel等。JasperReport的强大在于它的灵活性,可以处理动态数据,支持数据分组、排序、过滤等...
Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建结构清晰、可维护性高的Web应用程序,而JasperReport则是一个功能丰富的报告生成库,能够创建复杂的报表并支持多种输出格式,如HTML、PDF等。 在"整合...
JasperReport通用报表代码,其实说不上通用,不过可以当入门参考。
jasperReport+ireport 报表工具是把 jasperReport 和 ireport 结合到一起来制作报表的。首先在 ireport 中设计报表模板,生成 XML 格式的文件,编译后生成 jasper 后缀的二进制文件。将编译好的.jasper 文件拷贝到 ...