- 浏览: 73545 次
- 性别:
- 来自: 长沙
最新评论
-
rox:
看过一封是这样的:我虽然不能改变被剥削的命运,可我有选择被谁剥 ...
今天收到一封非常牛B的离职信 -
xjlcl1983:
不错
在团队中用 BIRT 进行报表开发 -
hubeen:
swing的样式非常难看,没法和windows自带的比。响应速 ...
耗材管理系统 -
yhy0371:
不错,可以学习下
耗材管理系统 -
hyj0903:
居然又很奇怪的可以了!
Apache Ant包进行ZIP文件压缩
jasperReport的这个包net.sf.jasperreports.engine.design 是这样描述的:Contains design time implementations for the library's main interfaces as well as report compiling tools.因此我们完全可以使用它的API构建自己的报表,还是和前几篇使用同一个数据库表。
构建JasperDesign对象:
设置一些对应的属性:
// JasperDesign JasperDesign jasperDesign = new JasperDesign(); jasperDesign.setName("NoXmlDesignReport"); jasperDesign.setPageWidth(595); jasperDesign.setPageHeight(842); jasperDesign.setColumnWidth(515); jasperDesign.setColumnSpacing(0); jasperDesign.setLeftMargin(40); jasperDesign.setRightMargin(40); jasperDesign.setTopMargin(50); jasperDesign.setBottomMargin(50);
字体:
// Fonts JRDesignStyle normalStyle = new JRDesignStyle(); normalStyle.setName("Arial_Normal"); normalStyle.setDefault(true); normalStyle.setFontName("Arial"); normalStyle.setFontSize(12); normalStyle.setPdfFontName("Helvetica"); normalStyle.setPdfEncoding("Cp1252"); normalStyle.setPdfEmbedded(false); jasperDesign.addStyle(normalStyle); JRDesignStyle boldStyle = new JRDesignStyle(); boldStyle.setName("Arial_Bold"); boldStyle.setFontName("Arial"); boldStyle.setFontSize(12); boldStyle.setBold(true); boldStyle.setPdfFontName("Helvetica-Bold"); boldStyle.setPdfEncoding("Cp1252"); boldStyle.setPdfEmbedded(false); jasperDesign.addStyle(boldStyle); JRDesignStyle italicStyle = new JRDesignStyle(); italicStyle.setName("Arial_Italic"); italicStyle.setFontName("Arial"); italicStyle.setFontSize(12); italicStyle.setItalic(true); italicStyle.setPdfFontName("Helvetica-Oblique"); italicStyle.setPdfEncoding("Cp1252"); italicStyle.setPdfEmbedded(false); jasperDesign.addStyle(italicStyle);
定义报表的参数,并添加到报表设计器上
// Parameters JRDesignParameter parameter = new JRDesignParameter(); parameter.setName("ReportTitle"); parameter.setValueClass(java.lang.String.class); jasperDesign.addParameter(parameter);
定义报表的字段,这些字段是最终显示到报表上的域
// Fields JRDesignField field = new JRDesignField(); field.setName("userid"); field.setValueClass(java.lang.Integer.class); jasperDesign.addField(field); field = new JRDesignField(); field.setName("name"); field.setValueClass(java.lang.String.class); jasperDesign.addField(field); field = new JRDesignField(); field.setName("sex"); field.setValueClass(java.lang.String.class); jasperDesign.addField(field); field = new JRDesignField(); field.setName("age"); field.setValueClass(java.lang.String.class); jasperDesign.addField(field); field = new JRDesignField(); field.setName("password"); field.setValueClass(java.lang.String.class); jasperDesign.addField(field); field = new JRDesignField(); field.setName("department"); field.setValueClass(java.lang.String.class); jasperDesign.addField(field); JRDesignBand band = null; JRDesignTextField textField = null; JRDesignExpression expression = null;
开始画报表主体的title部分,不需要的部分可以不用代码标识出来,title部分放置了报表标题字段,只会出现在第一页的上方
// title band = new JRDesignBand(); band.setHeight(50); textField = new JRDesignTextField(); textField.setBlankWhenNull(true); textField.setX(0); textField.setY(10); textField.setWidth(500); textField.setHeight(30); textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_CENTER); textField.setStyle(normalStyle); textField.setFontSize(22); expression = new JRDesignExpression(); expression.setValueClass(java.lang.String.class); expression.setText("$P{ReportTitle}"); textField.setExpression(expression); band.addElement(textField); jasperDesign.setTitle(band);
detail部分:排列域的位置,并设置它的值,没一个域的值会最为一个 JRDesignExpression出现
// Detail // pid band = new JRDesignBand(); band.setHeight(20); textField = new JRDesignTextField(); textField.setX(5); textField.setY(4); textField.setWidth(100); textField.setHeight(15); textField.setHorizontalAlignment(JRAlignment.HORIZONTAL_ALIGN_RIGHT); textField.setStyle(normalStyle); expression = new JRDesignExpression(); expression.setValueClass(java.lang.Integer.class); expression.setText("$F{userid}"); textField.setExpression(expression); band.addElement(textField); // name textField = new JRDesignTextField(); textField.setStretchWithOverflow(true); textField.setX(120); textField.setY(4); textField.setWidth(80); textField.setHeight(15); textField.setPositionType(JRElement.POSITION_TYPE_FLOAT); textField.setStyle(normalStyle); expression = new JRDesignExpression(); expression.setValueClass(java.lang.String.class); expression.setText("$F{name}"); textField.setExpression(expression); band.addElement(textField); // sex textField = new JRDesignTextField(); textField.setStretchWithOverflow(true); textField.setX(200); textField.setY(4); textField.setWidth(30); textField.setHeight(15); textField.setPositionType(JRElement.POSITION_TYPE_FLOAT); textField.setStyle(normalStyle); expression = new JRDesignExpression(); expression.setValueClass(java.lang.String.class); expression.setText("$F{sex}"); textField.setExpression(expression); band.addElement(textField); // age textField = new JRDesignTextField(); textField.setStretchWithOverflow(true); textField.setX(240); textField.setY(4); textField.setWidth(30); textField.setHeight(15); textField.setPositionType(JRElement.POSITION_TYPE_FLOAT); textField.setStyle(normalStyle); expression = new JRDesignExpression(); expression.setValueClass(java.lang.String.class); expression.setText("$F{age}"); textField.setExpression(expression); band.addElement(textField); // password textField = new JRDesignTextField(); textField.setStretchWithOverflow(true); textField.setX(270); textField.setY(4); textField.setWidth(80); textField.setHeight(15); textField.setPositionType(JRElement.POSITION_TYPE_FLOAT); textField.setStyle(normalStyle); expression = new JRDesignExpression(); expression.setValueClass(java.lang.String.class); expression.setText("$F{password}"); textField.setExpression(expression); band.addElement(textField); // department textField = new JRDesignTextField(); textField.setStretchWithOverflow(true); textField.setX(350); textField.setY(4); textField.setWidth(80); textField.setHeight(15); textField.setPositionType(JRElement.POSITION_TYPE_FLOAT); textField.setStyle(normalStyle); expression = new JRDesignExpression(); expression.setValueClass(java.lang.String.class); expression.setText("$F{department}"); textField.setExpression(expression); band.addElement(textField);
JasperReport对象可以使用下面这句产生:
JasperCompileManager.compileReport(jasperDesign);
至此一个完整的报表就可以显示出来了。
发表评论
-
Apache Shiro开发手册(部分)翻译
2012-01-30 16:16 1638Apache Shiro是一个不错的开源安全框架,但国内一直中 ... -
hibernate映射视图的两种方式
2010-08-16 20:51 16331.数据库已经建立视图,hibernate只是把视图当作普通的 ... -
OSWorkflow源码分析
2010-07-26 16:05 1631OSWorkflow的关键包组成: - ... -
在团队中用 BIRT 进行报表开发
2010-07-26 14:29 1939原贴地址:http://www.ibm.c ... -
JDBCTemplate
2010-07-23 17:14 985Spring JDBCTemplate中文文档,网上找的,做个 ... -
Flash图表工具FusionChart
2010-07-23 15:59 1638官方网站:http://www.fusioncharts.c ... -
Apache Ant包进行ZIP文件压缩
2010-07-23 15:35 6170Apache Ant包进行ZIP文件压缩 许多年前就遇到过这 ... -
使用jetty 自带的http client!
2009-11-15 15:45 1912转自:http://iamrunning.iteye.com/ ... -
Java中Socket实现消息传输(序列化原型)
2009-11-03 00:39 1615前面写了个传输的原型,现在应该写一下消息的编解码 其实消息的 ... -
Java中Socket实现消息传输(传输原型)
2009-11-03 00:12 1986项目已经做的差不多了,其中做了一个消息的转发功能,所以自己也写 ... -
关于乘与除的一些技巧
2009-09-26 22:10 893在平时我们写程序时要是让你打印一个2*2=? 或是打印2/2= ... -
Hibernate Open-Session-In-View Pattern
2009-07-29 23:52 1289用hibernate,继续写代码来处理关联关系很繁,考虑用关联 ... -
SSH框架整合
2009-07-29 23:37 1255开发环境: IDE:MyEcl ... -
如何使用Java POI生成Excel表文件 ! (转)
2009-07-20 22:57 1575如何使用Java POI生成Excel表文件 ! (转) / ... -
Web开发中的验证码图片的生成-基于Java的实现
2009-01-12 20:21 1290大家在使用Web网站的时候,经常会发现有个验证码需要输入,这是 ...
相关推荐
iReport+JasperReport柱状图开发指南 本文详细介绍了使用iReport和JasperReport开发柱状图的过程,包括确定数据源类型、开发数据源类、设计图表属性等步骤。作者分享了自己的实践经验,遇到的困难和解决方法,旨在...
《ireport+jasperreport联合开发Java报表》是针对Java开发者的一款强大的报表生成工具,它能够帮助程序员高效地创建、设计和导出各种复杂的业务报表,尤其是PDF格式的报表。本资料详细介绍了如何利用ireport和...
《ireport+jasperreport API 报表开发指南》 在IT行业中,报表系统是数据分析和决策支持的关键组成部分。ireport和jasperreport是两款强大的开源报表工具,它们提供了丰富的API和设计工具,使得开发者能够创建从...
### iReport + JasperReport 客户端打印与数字签名详解 #### 一、概述 iReport 是一个用于设计 JasperReports 报告模板的图形界面工具,而 JasperReports 则是一款非常流行的 Java 报告工具,它能够从各种数据源...
详细介绍了如何利用ireport+jasperreport柱状图例子,并附有代码,参照实例,手把手教你用该解决方案作柱状图。
### ireport+jasperReport+Swing总结 #### 一、概述 本文档旨在总结 ireport 4.1.3 版本与 jasperReport 4.5.0 版本结合 Swing 在报表设计与生成方面的应用。通过图文并茂的方式详细介绍如何使用 ireport 设计报表...
iReport和JasperReport是两个在Java开发领域中广泛使用的报表工具,主要用于设计和生成复杂的业务报告。这两个工具是开源的,因此深受开发者喜爱。在本资料包中,你将获得两本关于iReport和JasperReport的教材,以及...
以上是针对ireport+jasperreport开发中常见问题的解决方案,每个知识点都是报表设计中不可或缺的一部分,熟练掌握这些技巧将有助于提高报表开发的效率和质量。在实践中,还需要不断学习和尝试,以应对更多复杂场景下...
看看代码你就知道报表开发有多简单。由于jar包太多,所以没有附带,你可以安装ireport3.0.0后,ireport安装目录下的lib文件下的jar包就是本实例的jar包,但是struts的包需要你自己加入。
Struts2.0+JasperReport+IReport+Oracle 报表开发 整个项目打包上传,用MyEclipse导入即可调试使用 含报表文件、数据库表结构及测试数据,项目中解决了PDF中文不显示问题
使用ireport和struts2进行报表...java工程的lib里包含丰富的jar包,且很多都是从各个网站下载的最新版本,文件夹内还包含一些ireport和jasperreport文档,适合刚入门学习报表的作参考。没分了,收个友情分1分,勿怪。
iReport支持多种数据源,包括数据库、XML文件等,可以设计多种类型的报表,如表格、图表、文本等。在本项目中,iReport被用来设计报表模板,这些模板定义了报表的布局、样式和数据来源,为报表的动态生成奠定了基础...
Struts2.0+JasperReport+IReport+Oracle 报表开发 整个项目打包上传,用MyEclipse导入即可调试使用 含报表文件、数据库表结构及测试数据,项目中解决了PDF中文不显示问题
【报表制作的详细流程(iReport+jasperReports)】 在IT领域,报表系统是数据分析和决策支持的重要工具。本文将深入探讨使用iReport和jasperReports这两个开源工具来创建专业报表的详细步骤。这两个工具结合使用,...
Struts2.0+JasperReport+IReport+Oracle 报表开发整个项目打包上传,用MyEclipse导入即可调试使用含报表文件、数据库表结构及测试数据,项目中解决了PDF中文
在"ireport+jasperreport一个小例子"中,我们可以推测这是一个使用这两个工具创建的简单示例。`test.jrxml` 文件是使用`iReport` 设计的报表模板,它是JRXML格式,这是一种XML文件,包含了报表的布局、样式和数据源...
Ireport4.0.2+jasperReport4.0.2整合 的开发工具 用于strust2的完美结合 生成任何格式的报表(pdf、xml、xls、html)。。。。。。本人已实现
Ireport4.0.2+jasperReport4.0.2整合 的开发工具 用于strust2的完美结合 生成任何格式的报表(pdf、xml、xls、html)。。。。。。本人已实现
Ireport4.0.2+jasperReport4.0.2整合 的开发工具 用于strust2的完美结合 生成任何格式的报表(pdf、xml、xls、html)。。。。。。本人已实现
Ireport4.0.2+jasperReport4.0.2整合 的开发工具 用于strust2的完美结合 生成任何格式的报表(pdf、xml、xls、html)。。。。。。本人已实现