JasperReprot差用操作

jasperreports工程项目源码 JasperReport是一个强大、灵活的报表生成工具,是开放源代码组织sf.net中的一个java 报表打印工程。能够展示丰富的页面内容,并将之转换成PDF,HTML,XML,Excel(通过POI或JExcelAPI实现)和Rtf(通过POI实现)格式。该库完全由Java写成,可以用于在各种Java应用程序,包括J2EE,Web应用程序中生成动态内容。它的主要目的是辅助生成面向页面的(page oriented),准备付诸打印的文档。JasperReport借由定义于XML文档中的report design进行数据组织。这些数据可能来自不同的数据源,包括关系型数据库,collections,java对象数组。通过实现简单的接口,用户就可以将report library插入到订制好的数据源中。 立即下载

代码例子:
设置编译的类库和表格文件存放目录:
JRProperties.setProperty(JRProperties.COMPILER_CLASSPATH, context.getRealPath("/WEB-INF/lib/jasperreports-1.2.0.jar")
???+ System.getProperty("path.separator")
???+ context.getRealPath("/WEB-INF/classes/"));
JRProperties.setProperty(JRProperties.COMPILER_TEMP_DIR, context.getRealPath("/reports/"));
或者是直接使用:
JasperCompileManager.compileReportToFile(context.getRealPath("/reports/WebappReport.jrxml"));

HTML Export:
File reportFile = new File(context.getRealPath("/reports/WebappReport.jasper"));
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(reportFile.getPath());
或直接使用JasperReport的XML文件
JasperReport jasperReport = JasperCompileManager.compileReport(context.getRealPath("/reports/WebappReport.jrxml"));

设置输入的一些参数
Map parameters = new HashMap();

填充报表
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new WebappDataSourceList());

导出HTML格式:
JRHtmlExporter exporter = new JRHtmlExporter();
request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,jasperPrint);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);--使用报表(JasperPrint)
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);--输出到流
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"image?image=");
exporter.exportReport();

PDF Export:
bytes = JasperExportManager.exportReportToPdf(jasperPrint);?
response.setHeader("Content-Disposition","attachment;filename=JasperPDF.pdf");
// 设置页面的输出格式
response.setHeader("Content-Type", "application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();

XLS Export:
ServletOutputStream outs = response.getOutputStream();
JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,reportFile + xlsFileName); --输出到文件
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outs);--输出到流
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);--每页使用一个SHEET
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);--移除空白
exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE);--背景色
exporter.exportReport();

主从报表:
ServletOutputStream out = response.getOutputStream();
JasperReport subReport = JasperCompileManager.compileReport(context.getRealPath("/reports/child.jrxml"));
JasperReport fatherReport = JasperCompileManager.compileReport(context.getRealPath("/reports/father.jrxml"));--定义主报表样式
Map parameters = new HashMap();
ArrayList listf = new ArrayList();--主报表的数据
ArrayList listc = new ArrayList();--子报表的数据
??
parameters.put("Title", "SubReport");
parameters.put("SubReportMap", new JRBeanCollectionDataSource(listc));--子报表的数据
parameters.put("ChildReport", subReport);

JasperPrint jasperPrint = JasperFillManager.fillReport(fatherReport,parameters, new JRBeanCollectionDataSource(listf));
?
JRHtmlExporter exporter = new JRHtmlExporter();

request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,jasperPrint);

exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"image?image=");
exporter.exportReport();

子报表如何得到输入的参数:
首先是将参数传入到主报表中,再在主报表中将相应的参数传给子报表。因为在主报表中定义子报表时可以定义参数给子报表。
并且要将相应的表格样式文件传给子报表:
使用方法:
(1)net.sf.jasperreports.engine.JasperReport。
JasperReport subReport = JasperCompileManager.compileReport(context.getRealPath("/reports/child.jrxml"));
parameters.put("ChildReport", subReport);
(2)在样式中直接使用文件得到子报表的样式。

相关的定义:
1.参数
参数是传入到报表填充操作的对象引用
参数可的构造SQL查询
2.数据源
JasperReports使用一个叫JRDataSource的接口来支持各种类型的数据源
3.字段
报表字段代表从数据源映射数据到报表产生程序的唯一途径
4.表达式
表达式是JasperReports的强大特点,它们可被声明的报表变量使用来执行各种计算。
5.变量
报表变量是才一个表达式开始时建立的特殊的对象。
变量可以在相应的表达式中执行内置类型的计算,如:count,sum,average,lowest,highest等
6.报表区
当我们建立一个报表设计时,我们需要定义报表区的内容和布局。报表设计的整个结构基于以下报表区<title>, <pageHeader>, <columnHeader>, <groupHeader>, <detail>, <groupFooter>, <columnFoter>, <pageFooter>, <summary>.
7.组
组代表了在报表上组织数据的一个灵活的方式,当我们填充一个报表时,JasperReports引擎可字段检测组表达式<groupFooter> 和 <groupHeader>等是否完整。
8.字体和Unicode支持
你可以用任何语言来创建你的报表。
9. Scriptlets
Scriptlets是java代码序列,在每次报表事件发生时被执行。通过 scriptlets,用户可以影响被报表变量存储的值。
当我们创建一个JasperReports scriptlet类时,开发者要实现或重载几个方法,象:beforeReportInit(), afterReportInit(), beforePageInit(), afterPageInit(), beforeGroupInit(), afterGroupInit()等,这些方法当填充报表时在适当的时候被报表引擎调用。
10.子报表
子报表是报表产生工具的重要特征,它允许更复杂报表的创建并简化设计工作。
子报表在创建主从报表时非常有用。

jasperreport 后台封装代码 jasperreport 后台封装代码,调用方法: new PDFExport().export(request, response, reportFilePath, parameters, new JDBCConnection().getConnection(),"report"); new XlsJExcelExport().export(request, response, reportFilePath, parameters, new JDBCConnection().getConnection(),"report"); 立即下载

相关推荐

JasperReport

JasperReport

JasperReports例子代码(转载)

sperReports例子代码 代码例子:设置编译的类库和表格文件存放目录:JRProperties.setProperty(JRProperties.COMPILER_CLASSPATH, context.getRealPath("/WEB-INF/lib/jasperreports-1.2.0.jar")???+ System.getProperty("path.separator")...

niweiwei 377

JasperReport 后台 代码 封装,采用JRDataSource方式

JasperReport 后台 代码 封装,采用JRDataSource方式。

JasperReport使用说明

Paramters Paramters是一张报表中全局的属性,初始自带了一些属性,也可以自定义属性。大家可以理解为存放一个报表的表头数据 Paramter的属性可以是任何类型,String,Long,Double,List等等 Paramter可以用在报表的任何区域,一般用在报表的Title,Page Header,Page Footer区域 1.Paramters的创建:在左侧的Outline框,在Paramters上右键 Create Paramter 就可以创建一个新的Paramter,在右侧可

Cx的博客 4394

centos8 安装新版bind9源码

bind一直在更新,使用了比较多的新架构 本文记录新版本的bind怎么安装,以及其依赖库的安装 1. 在https://www.isc.org/download/ 下载最新stable版本bind,本文以bind-9.17.9.tar.xz为例。将软件传到/root目录下。 也可以到https://ftp.isc.org/isc/bind9/ 下载更多历史版本 2. 安装基本的依赖库,像gcc、amake等 3. 需要安装libuv库,但直接用yum时可能安装不全 建议使用源码安装,需要安..

linggang_123的博客 2538

LaTeX公式转Word竟这么简单?Python三行代码实现学术论文格式无忧

本文介绍如何利用Python的latex2word库,仅需三行代码即可将LaTeX数学公式精准转换为Word原生Office Math对象,解决学术写作中LaTeX与Word格式割裂的难题。该方法支持批量处理、格式保真,并能与Markdown、Jupyter Notebook等工具集成,构建自动化写作流程,实现学术论文格式无忧。

qsc90123456的博客 295

Jasperreport 基础教程

java生成pdf,模板jasper report ,工具jaspersoft Studio工具使用,表格和图片打印

香蕉加奶茶的博客 6245

LLM and Embedding区别

LLM(大语言模型)和 Embedding(嵌入)是自然语言处理(NLP)中的两个核心概念,它们的核心区别在于。Embedding 计算向量。

u010674101的专栏 1873

JasperReport源码分析

介绍 本文将会以6.1.0版本为基础分析源码。 DefaultJasperReportsContext 该类是个单例类,下面是该类初始化的一个流程: initProperties,通过该方法来加uo载配置文件 getDefaultProperties,通过...

chuannaoxuan4674的博客 588

MTK眼中6G物理层与无线协议的进化之路

提议统一波束和小区级的测量、报告和切换框架/流程,进一步减少移动性切换过程中的中断,采用可扩展框架/流程,允许在不同移动性场景中进行部分用户设备配置更新以实现快速切换,支持用户设备发起的移动性(同步/切换)以降低延迟和因信令交换导致的失败,设计移动性RS以实现空闲状态下的节能和连接状态下的无缝用户体验,实现5G/6G间的无缝互操作移动性,为固定无线接入(FWA)提供潜在增强,构建统一的跨层移动性框架以降低复杂度、减少中断和失败。为适应多样化的流量类型,需要灵活的帧结构和高层时间对齐。

asd199086的博客 1745

WinForm布局

登录模板页面UILoginForm

m0_71541781的博客 469

JasperReport环境配置

JasperReport环境配置JasperReports是一款报表打印组件,是开放源代码组织sf.net 中的一个java 报表打印工程,可以将内容输出到屏幕上、打印机或生成PDF, HTML, XLS, CSV和XML等文件。它完全用Java编写,并可在各种Java应用(包括J2EE或WEB应用)中用来产生动态报表内容。JasperReports组织根据在一个XML文件中定义的报表设计通过

Wilfrid Zhu的专栏 1587

10.嵌入式控制器EC实战 GPIO开发流程

文章目录1.General Control Register (GCR),通用控制寄存器,地址0x1602.GPDRA—GPDRJ端口数据寄存器组(共10组)3.Port Control n Registers (GPCRn, n = A0-I7),端口控制寄存器4.GPIO端口编程指导编程步骤端口初始化使用InitGPIOReg数据结构初始化所有端口默认工作模式读取输入引脚的值(STATE_ACin()): IT8502中各个引脚的描述见下表所示: 在嵌入式控制器EC的IT8502主控芯片中,通过芯片的

qq_30135687的博客 2283

JasperReport+Servlet Web应用之:打印

关于JasperReport的简介大家可以去google上去查,在这里就不作介绍了。   我的开发环境:MyEclipse 5.5 GA+iReport-nb-3.5.2。所用的JasperReport版本也是:jasperreports-3.5.2 所需要的jar可以从下面的lib1,lib2中获得,所有jar包除了iTextAsian.jar外都可以从jasperreports-3.5....

我的IT技术杂谈 449

Unity中使用TCP和UDP传输摄像头视频的实践

本文探讨了在Unity中通过TCP和UDP协议传输摄像头视频的实现方法。TCP通过自定义消息帧保证数据完整性但效率较低,UDP传输速度快但可能丢帧。文章提供了Python和Unity的代码示例,分析了两种协议的适用场景:TCP适合要求数据完整性的应用,UDP则适合追求实时性的场景。最终选择取决于具体需求,并需要注意线程安全与同步机制。

m0_74337424的博客 145

基于sklearn实现LDA主题模型(附实战案例)

目录LDA主题模型1.LDA主题模型原理2.LDA主题模型推演过程3.sklearn实现LDA主题模型(实战)3.1数据集介绍3.2导入数据3.3分词处理 3.4文本向量化3.5构建LDA模型3.6LDA模型可视化 3.7困惑度 其实说到LDA能想到的有两个含义,一种是线性判别分析(Linear Discriminant Analysis),一种说的是概率主题模型:隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA)。 现在讨论的是主题模型

m0_64336780的博客 2万+

JasperReports打印图片

long start = System.currentTimeMillis(); JasperPrint jasperPrint = JasperFillManager.fillReport("H:\\hyxprintworkspace\\taobao\\sfDemo\\src\\com\\sf\\openapi\\waybill\\print\\util\\poster_100mm150...

今天最成功 1322

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IReport&jasperreprot学习笔记

前两天写了一段关于JFormattedTextField的blog,存盘没成功,郁闷啊。今天从新来过。下载了个IReport软件用用,网上看别人都用的都挺简单的,我这里连个中文静态文本都出不来。试了试,搞定!为了纪念写下来。report的编码GB2312,静态文本--字体选宋体,PDF font name-STSong-Light,PDF Embedded 挑勾,pdf encodeing选择简体

tommorrow的专栏 626

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ireport,jfreechart,Jasperreport

ireport:是报表设计器 jfreechart:是个饼图,柱状图,线状态等图标工具 jasperreprot是个打印报表工具 1. ireport 1.1. 安装 安装包:iReport-5.6.0-windows-installer.exe ,下载官方地址:https://sourceforge.net/projects/ireport/files/latest/download?

fulq1234的专栏 585

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jasperreport 自学笔记

最近学习jasperreprot

雁过寒潭 181

iReport 和 Jasperreport整合开发web报表向导

是在一个星期以前接触iReport 和 Jasperreport的,下载最初它们并没有吸引我的兴趣(或信任),主要是他们的版本的问题(我一直不敢用版本都不到1.0的工具软件,目前它们的版本:iReport0.2.2,Jasperreport0.5.0),不过听说有人在用他们,于是就仔细看了一下(因为在java应用程序的web打印方面我一直都是采用浏览器打印,非常痛苦,所以宁可信其有不可信其无,呵呵

zjhgx的专栏 727

Myeclipse自带的tomcat位置

安装myeclipse自带的tomcat没有在myeclipse的安装目录下,是再myeclipse指定的工作空间下的打开myeclipse,选择window->最后一个选项(首选项)会看到如截图对话框.在搜索框键入server 找到myeclipse Tomcat 对话框的右侧则是tomcat的路径

xiejiangquan的专栏 3002

[idea]Error:java: invalid source release: 1.8 ...

最近用idea敲struts,虽然idea的界面很好看,代码提示也很强大,不过也的确是碰到了一些在eclipse上从来没有碰到过的问题,而且我发现,idea的错误,很多都是在外国的网站上提问的人比较多,国内的资料少一点,我竟然慢慢喜欢上了查这些网站的资料。。。。 出现问题 回归正题,出现这个问题的状况是我的电脑本机装的默认jdk版本是1.8.0_71,然后我平常开发用的jd...

weixin_33947521的博客 599

java jr_java – JRProperties被弃用,推荐的替换方式

我一直用它来以下面的方式设置属性(因为它是一个提供静态方法的类),JRProperties.setProperty("net.sf.jasperreports.default.font.name", defaultPDFFont);JRProperties.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true");(.....

weixin_34776645的博客 346

Jasperreport源码&demo运行

Jasperreport是著名的报表开源项目,提供了非常丰富的功能,可以满足日常开发中大部分的需求,下面将就该开源项目的demo运行做一些说明。 1、从sourceforge上下载jasperreport的工程http://sourceforge.net/projects/jaspe...

470

JasperReport入门到入土(二)java端工具类源码

因为jasperReort是开源的,所以用来做小项目非常合适,原理就是使用Soft工具设计模板,生成jasper文件,将jasper放在java项目静态资源目录,使用工具类将数据库数据写入模板中,返回流给客户端下载或返回PDF给客户端。 (一)pom依赖 <dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports&

qq_42797527的博客 1352
上一篇: jasperreports报表生成代码
下一篇: Eclipse Ctrl+Shift+T(OpenType)快捷鍵不好用问题
wangyun_java
博客等级 码龄16年 18粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值