- 浏览: 90047 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
Ginger90:
其实大部分功能和帆软报表差不多,但是帆软报表编写起来更方便一些 ...
iReport+jasperReport之JFreeChart(图表报表) -
tiancaishan:
这只是最简单的主数据源,那子数据源怎么设置呢?
iReport+jasperReport之CSV、XML数据源 -
wangqiangcattsoft:
楼上源码只看了一半
Struts2整合JasperReport预览HTML格式不显示图片问题解决方案 -
tuan232311009:
不错!
黑莓开发学习入门系列,自己动手实现一个日历软件(六)
iReport+jasperReport之NoXML
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 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);
字体:
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);
定义报表的参数,并添加到报表设计器上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);
定义报表的字段,这些字段是最终显示到报表上的域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;
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出现
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
// 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对象可以使用下面这句产生:
// 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);
JasperCompileManager.compileReport(jasperDesign);
至此一个完整的报表就可以显示出来了。
发表评论
-
如何使用Static的变量和方法
2007-12-01 10:55 711如何使用Static的变量和方法有时你希望定义一个类成员 ... -
Transact-SQL简明语法
2007-12-01 11:02 1027最简单的查询语法格式: SELECT <列名&g ... -
去北京面试时的题目(老师生日)微软面试题
2007-12-01 19:59 1181小明和小强都是张老师的学生,张老师的生日是 M月 N日, 2人 ... -
有点象24点游戏,说说你的想法
2007-12-01 23:02 753* 5、5、5、1怎么能算出24呢? * ... -
JDK5增强for循环的使用
2007-12-02 23:43 785JDK5增强for循环的使用,此语法有很大的缺陷,仅适用于有限 ... -
Java中的多态
2007-12-03 11:26 791在实际操作中,多态可以让我不用关心某个对象到底是什么具体类型, ... -
运用线程实现时间更新
2007-12-06 11:01 751线程的做的时间表,不知道合不合适,哪位还有更好的实现方式(ja ... -
生产者消费者问题(以面包为例)
2007-12-10 19:48 760package Thread;public class Pr ... -
数据库关系表解决方案
2007-12-26 21:45 739数据库关系的表之间定义一个连接,而所定义连接的方式由表之 ... -
Struts2表单请求流程(一)
2007-12-29 20:09 855Struts2框架出来有段时间了,终于开始学习Struts了, ... -
Struts2表单请求流程(二)— Struts2高级的POJO访问
2007-12-29 20:20 1935此文主要来自www.blogjava.net/Max的实例 S ... -
开源软件逐渐走进了我的生活
2008-03-18 21:58 735看看我们经常用的软件吧! 以前经常去找一些破解的软件用,没有那 ... -
Struts2中select/doubleselect标签数据显示
2008-04-02 08:46 1089最近做毕业设计用到Struts2 的标签库,遇到一些比较复 ... -
用commons-email-1.1.jar实现发邮件功能:
2008-04-07 09:47 1085今天在Apache网站上下载commons-lang j ... -
JFreeChart简单使用
2008-04-18 09:29 875JFreeChart is a free chart libr ... -
Spring2.5.3+Hibernate3.2+Struts2.0.11整合
2008-04-18 13:59 894Spring2.5.3+Hibernate3.2+Struts ... -
java截取字符串的一些常用处理
2008-08-01 09:06 957java对字符串处理功能强大,以下是本人实际开发中用到的一些总 ... -
dom4j操作xml基础
2008-08-03 15:39 960DOM是用与平台和语言无关的方式表示XML文档 ... -
office javaScript调试工具
2008-08-05 18:21 914项目前台需要写大量的js,寻求一种有效 ... -
Visitor访问者模式---------学习dom4j时遇到的顺便拿来交流
2008-08-10 12:12 917dom4j遍历xml文档树有种很特别的方式就是访问者( ...
相关推荐
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)。。。。。。本人已实现