java+ireport应用 (1)

合集下载

ireport制作复选框的办法

ireport制作复选框的办法

ireport制作复选框的办法
——JN学习心得1.首先拉一个矩形框,然后再拉一图形控件。

把他们设置大小一样。

2把图片放到矩形框中。

打开图片的属性在common中设置
new ng.Boolean($F{TransJob}.equals("1")) 其中$F{TransJob}是复选框这个字段,而equals("1")中1是复选框的值,就是说当复选框的值是1的时候显示图片。

3 选择图片,可以是预先做好的打钩或黑点。

“./”是相对路径,a.jpg就是在本文件夹内。

当然你要点FIND按钮查找页可以。

这里要注意的是,如果你想在服务器上调用这图片,也要在服务器上指定好图片的路径。

4做完上面得那些还不够,图片还是显示不了。

要把复选框字段的类型改为string.
这回你再运行就OK了。

跟我学JasperReports报表框架——利用iReport工具管理Web报表的应用示例

跟我学JasperReports报表框架——利用iReport工具管理Web报表的应用示例

1.1跟我学JasperReports报表框架——利用iReport工具管理Web报表的应用示例1.1.1利用iReport工具操作报表1、编译报表由于Jasperreport在运行时需要的就是一个*.jasper后缀的文件,编译过程其实就是把*.jrxml后缀的文件生成*.jasper后缀的文件。

(1)有关的菜单(2)编译过程中的状态输出(3)编译后所产生出*.java程序和*.jasper后缀的文件2、执行报表Jasperreport提供了两种运行的方式-------静态运行和动态运行,动态运行是带数据源的运行,比如带数据库运行。

前者就是静态文本运行,和数据源无关。

因此,在静态运行方式下,如果报表中出现和数据源有关的对象,则以null显示。

(1)静态运行的菜单(2)动态运行的菜单最好采用动态连接(前面已经设置了动态连接),从而能够动态地获得数据库表中的数据值。

将出现下面的结果3、预览显示报表在iReport中提供了JRViewer的预览显示方式,JRViewer是直接以C/S方式作为报表的输出格式,在JFrame框架下输出。

Jasperreport提供默认的JRViewer输出类,这是iReport 自身带的PDF格式预览。

选择其菜单然后再选择“执行报表(使用动态连结)”,将出现下面的结果4、导出为其它格式的报表iReport的出格式可以支持以下几种:PDF、HTML、CSV、JA V A2D、Excel、纯文字等形式。

选择其他格式的预览,系统会以这种格式保存到磁盘中。

保存位置读者也可以选择,在iReport菜单栏中选择Options,在其中选择Compiler标签,选择编译好的文件以及各种形式的报表保存位置。

在一些应用程序环境下,将JasperReport生成的文档从其特有的格式导出到其他更为流行的格式如PDF,HTML是非常有用的。

这样一来,其他人就可以在没有安装JasperReport 的情况下查看这些报表,特别是当这些文档要通过网络发送出去的时候。

iReport使用说明

iReport使用说明

iReport使用说明iReport使用说明1、简介iReport是一个开源的报表设计工具,基于Java开发,可用于创建和各种类型的报表。

本文档旨在提供详细的使用说明,帮助用户熟悉iReport的各项功能并正确操作。

2、安装和配置2.1 和安装Java Development Kit (JDK)2.2 并安装iReport2.3 配置iReport的环境变量3、创建新报表3.1 新建报表项目3.2 设计报表3.2.1 设置报表属性3.2.2 添加数据源3.2.3 设计报表布局3.2.4 添加报表组件3.2.5 设置数据绑定3.2.6 设置报表参数3.2.7 设计报表样式和格式4、数据源管理4.1 添加数据库连接4.1.1 添加JDBC连接4.1.2 添加JNDI连接4.2 添加自定义数据源4.3 设置查询语句4.3.1 使用SQL查询4.3.2 使用JPQL查询5、报表布局5.1 页面设置5.1.1 设置页面大小5.1.2 设置页边距5.1.3 设置纸张方向5.1.4 设置打印设置5.2 添加报表元素5.2.1 文本框5.2.2 图片5.2.3 矩形框5.2.4 表格5.2.5 图表5.2.6 子报表5.2.7 其他组件5.3 设置组件样式和属性5.3.1 设置字体和颜色 5.3.2 设置边框和背景 5.3.3 设置可见性和位置5.3.4 设置超和书签6、数据绑定6.1 绑定静态数据6.2 绑定动态数据6.2.1 单值绑定6.2.2 列表绑定6.2.3 数据表绑定6.2.4 重复区域绑定7、报表参数7.1 添加参数7.1.1 输入参数7.1.2 输出参数7.1.3 多值参数7.2 设置参数默认值7.3 使用参数表达式8、报表样式和格式8.1 设置报表样式8.1.1 标题样式8.1.2 表头样式8.1.3 页脚样式8.1.4 数据行样式 8.1.5 重复区域样式8.2 设置报表格式8.2.1 数字格式8.2.2 日期格式8.2.3 对齐方式8.2.4 条件格式化9、预览和输出报表9.1 预览报表9.2 导出报表9.2.1 导出为PDF9.2.2 导出为9.2.3 导出为Excel9.2.4 导出为Word9.2.5 导出为其他格式附件:2、数据库连接配置文件法律名词及注释:1、JDK:Java Development Kit,Java开发工具包,由Oracle 提供的用于开发Java应用程序的软件包。

ireport常用方法

ireport常用方法

--相乘
($F{DISPENSE_QTY}.multiply($F{STANDARD_UNIT_PRICE})).multiply($F{RATIO})
--当两相等时不显示
ng.Boolean.valueOf(!$F{TXN_CODE}.equals$F{VALUE})

-- 当值为1时显示(1可改为任意值)
ng.Boolean.valueOf(ng.String.valueOf($F{COUNT}).equals("1"))
ng.Boolean.valueOf(ng.String.valueOf($F{positionFlag}).equals("POSITION_FLAG_STANDONLY") || ng.String.valueOf($F{positionFlag}).equals("POSITION_FLAG_BEGIN"))
--当值为空时不显示
ng.Boolean.valueOf(! ($F{DOSAGE_QTY} == null ))
--当值为空时显示前面的
$F{SPEC} == null?$F{TXN_DESC}:$F{TXN_DESC}+"("+$F{SPEC}+")"
ng.String.valueOf(($F{AMT}).setScale(2, BigDecimal.ROUND_HALF_UP))+"元" 取两位小数拼字段
ng.String.valueOf(
mon.frame.util.MathUtil.getInstance().getScale2BigDecimal($F{AMT}))+"元"

iReport使用说明

iReport使用说明
lastPageFooter:内容将会出现在报表的最后一页的最后部分。
各个Band放置如下:
3.2.1
在Fields标签页中,我们可以右键点击添加Fields按钮来创建一个新的Field。在右侧属性中你可以修改他的name和Field Class。Fields新建之后会有两部分组成,一部分相当于表格的列名是文本形式,可以修改为对应的汉字列名,另一部分是相应的变量名,用于与传入的值相对应。
Fields多用于在Detial栏中标识每个字段,与传入的DataStore中的每个字段相对应。
Fields name: Fields的名称,我们可以在表达式中通过下面的方法来引用一个Fields:
$V{fields name}
3.2.2
Parameters通常是用来在打印的时候从程序里传值到报表里。也就是说parameters通常的是起参数传递的作用。他们可以被用在一些特定的场合(比如应用中SQL查询的条件),如report中任何一个需要从外部传入的变量等(如一个Image对象所包括的char或报表title的字符串)。
Calculation Type :一个计算类型可以用来计算结果。当一个预先定义的值是“nothing”时,那它的意思是不做任何计算。ireport会根据指定的计算类型和从数据源中获取的每一条记录计算出结果,然后去更改variables的值。做一个变量的计算意为着去执行一个表达式,如果计算类型为nothing,那么ireport将会根据variable expression为variable赋值。
ByteArrayOutputStreamreport;
report = sp.print("3705","住院报销单");//在此方法中会通过printFomat=PrintFormatGetterFactory.getPrintFormatGetter().getFormat(pBiz, pgsmc);来获取打印格式流。用它jasperPrint = JasperFillManager.fillReport(jasperReport, para, dataStoreLoader);进行数据的填充。

ireport高级应用

ireport高级应用

iReport高级应用1.问题:IReport如何实现变量字段$F{ propertyName}赋值为一个NULL对象时不显示”null”,而现实为空白?解决方法:选中动态单元格,右键选择属性,在弹出对话框TextField选项卡中选中Blank when null,如下图所示。

思考:以往我们为IReport中变量字段赋值时会在程序或报表Textfield expression中用三目符号去判空,用IReport此功能既可以提高准确度,又可以减少工作量。

2.问题:IReport中如果动态单元格中$F{propertyName}显示的字过长,如何换行?解决方法:选中动态单元格,右键选择属性,在弹出对话框TextField选项卡中将选中Stretch With Overflow,如下图所示,思考:有很多bug都是因为动态文字($F{propertyName})显示不全而造成的,而且这些bug的修改方式也不是根本解决办法,因为就算拉长单元格对于动态字过多时也会出现同样的问题,而且现场也会出现同样的问题。

有了“动态长度超过文本框长度会自动换行”这个功能就会解决此问题。

3、问题:iReport中一个单元格由于内容太多而换行了,而其它没换行那么其显示高度肯定不一致了,如何解决换行导致的单元格对不齐问题?解决方法:把同行所有单元格的属性Stretch Type=" RelativeToBbandHheight "。

选择同一行所有单元格,点击右键选择属性,在弹出对话框Common选项卡中选中将Stretch Type 属性设为"RelativeToBbandHheight",如下图所示。

思考:有了此功能,我们使打印格式显示得更加整齐,就像一个表格框着每个单元格一样。

4、问题:iReport中当单元格中的文字出现换行跨页的情况,如何保证换行的字段能够正常显示,并且保证换行后同行的高度保持一致?解决方法:选择同行所有单元格,,点击右键选择属性,在弹出对话框Common选项卡中选中Print when detail over,如下图所示。

ireport使用教程

ireport使用教程

JasperReport那些事儿如果你还不知道jasperreport和ireport,那你可以参考我的上一篇文章,或者谷歌百度一下。

好了,废话少说,Let’s start,Go!我的环境是iReport3.0+JDK6.0。

先看看效果。

1)准备数据源,这里使用XML文件(使用UTF8编码)作为数据源。

2)打开iReport,新建一个空的模版文件。

3)加入一个静态文本(StaticText),右击属性(Property),编辑字体属性和内容。

关于Font Name 属性和PDF Font Name属性需要PMingLiu字体(下载)(将PMingLi u字体放在ireport安装目录的font文件夹下)或者你可以选择其他字体,例如宋体,PDF Font Name 选STSong-Light。

4)接下来就要做表格部分,新建一个子报表(subreport),除了第二步选择No C onnection or datasource,基本上只要点Next就行了。

5)完成上一步后就会跳到子报表NameList_subreport0的视图,其实子报表也是一个独立的报表。

但是你现在只能看到一个叫Detail的区域(band)。

我们还需要更多的区域来结合完成表格的制作。

调出区域管理器(菜单View->Bands),将column header 和column footer的高度(height)设为20.6)在column header加入三个静态文本(StaticText),字体属性和之前的一样,分别加入内容姓名,性别,年龄。

在detail区域加入三个文本(textField),在column fo oter加入一个文本,字体属性和StaticText保持一样。

然后设置所有静态文本和文本的边框,如图。

现在的textField都是没有数据的,那么怎么填充数据呢?现在我们来看怎么配置数据源和填充数据。

7)菜单data->connections/datasource,新建一个XML datasouce,目录位置指向之前建立的XML文件。

java-ireport-pdf

java-ireport-pdf
ServletContext context =this.getServletConfig().getServletContext();
//获取jasper文件路径
String path=context.getRealPath("/report/report1.jasper");
//获取网站的绝对路径
JasperPrint jasperPrint = null;
try {
report = (JasperReport) JRLoader.loadObject(file);
} catch (JRException e1) {
e1.printStackTrace(); }
try {
jasperPrint = JasperFillManager.fillReport(report, params, conn);
} catch (JRException e) { e.printStackTrace();
} finally {
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<a href="http://localhost:8080/LianXi/test-ireport-two.pdf">点击查看pdf文件</a>
if (conn != null) {
try {
conn.close();

iReport使用指南及常见功能示例详解

iReport使用指南及常见功能示例详解

iReport使⽤指南及常见功能⽰例详解⽬录报表结构数据源⽰例3.1 简单⽰例3.2 分组⽰例3.3 ⼦表⽅式分组查看3.4 图表⽰例3.4.1 饼图3.4.2 柱状图3.5交叉报表在使⽤ireport的过程中,因为各种功能都要百度,但是⼤家使⽤的例⼦⼜千差万别让⼈很苦恼,所以⽤⼀个简单例⼦贯穿的展⽰⼀下ireport的常见功能。

我使⽤的是iReport 3.5.1,使⽤的⽰例数据表如图:sales表:(⼈名、⼤致结构来⾃帆软电⼦⽂档,如有雷同,⽆意冒犯)sellers表:下⾯开始介绍:报表结构左边是view区,联系着主设计区中的各个band区域的数据,以及参数、变量等。

中间是主设计区,通过拖拽控件⾯板可以在此区域进⾏设计,有三种模式:设计(Designer)、源码(Xml)、预览(Preview),设计模式是可视的,源码⽅式可以直接在上修改,预览是对设计好的报表样式进⾏预览,也是⼀个编译的过程;右边是控件⾯板和属性⾯板,可以在此使⽤控件和设置属性。

JasperReport有三个⽅式来保持数据:Field、Paramrter、Variables。

⼀般情况下,Field是⽤作保存从数据源取出来的数据,⽤法是;Parameter是⽤来占位—我们在设计时往往不知道具体的值,那么⽤⼀个参数来占住它们的位置,在执⾏时,从程序或者数据库中传递对应的参数过来,从⽽实现⼀个动态的过程,⽤法是Variables是变量,可以将变量⽤于TextFild表达式中,也可以设置它的属性,使它具有⼀些功能,如求和,求平均数等,⽤法是数据源ireport提供很多种数据源的连接⽅式,点上⽅的数据库标识就可以设置数据库,下⽅的数据标识⽤来写SQL语句获取数据。

我们这⾥选择jdbc数据连接,mysql连接语句,数据库名称是testtest⼀下是否连通,输⼊数据库密码以后,如果成功会出现提⽰:⽰例3.1 简单⽰例⾸先连接数据库表sales:点击ok,这时左侧view窗⼝的field区域就得到了取到的数据:这时,在主设计区域拖拽静态⽂本控件:在column header区域添加列名,然后拖动左侧的field字段到detail域相应的列名下:3.2 分组⽰例有时候我们需要分组来观察数据,这时就需要group,我们以区域id来分组,需要注意的是,如果使⽤group分组,需要在⼀开始的sql语句中加上order by语句,否则ireport是不会⾃动分组的。

第一章JasperReport与iReport教程

第一章JasperReport与iReport教程

iReport几个重要的概念
编译、静态运行、动态运行
• Jasperreport 运行时需要的就是一个jasper后缀的文件,编译过程 其实就是把jrxml后缀的文件生成jasper后缀的文件。 • 静态运行和动态运行是相对的,后者带数据源运行,比如带数据 库运行。前者就是静态文本运行,和数据源无关,如果报表中出 现和数据源有关的对象,则以null显示。
报表结构
报表被垂直分成若干个部分,每一个部分我们叫它“band”。每一个 band都有自己的特性,在报表生成的时候有些会打印一次,有些会打印 多次。报表的结构大致是几个部分:title、pageHeader、columnHeader、 detial、columnFooter、pageFooter、summary、groupHeader、 groupfooter。如下图:
iReport简介
• iReport 也是开源组织 中的一款免费软件,其主 要作用是用来以可视化的方式设计生成JasperReport 所使用的报表格式文件,因为JasperReport 本身并未 提供很好的可视化报表设计工具,iReport 的出现正好 弥补了这个缺陷。 • 现在的iReport 的最新版本是3.7.2,iReport 可以从 下载得到,注意下载的 iReport 一定要与你所使用的JasperReport 版本相匹配, 当然也可以更新iReport 中所使用的JasperReport 组件。 • iReport运行时需要sun java2 SDK 1.5及以上版本,为 了能编译我们的报表文件我们需要完整的安装JDK。
JasperReport 与iReport --Java报表应用教程
第一讲 JasperReport 与iReport的基础知识

iReport使用教程

iReport使用教程

一、iReport简介说到iReport不得不先介绍Jasperreport,Jasperreport是一个报表制作程序,用户需要按照它制定的规则编写 一个XML文件,然后得到用户需要输出的格式文件。

它支持输出的文件格式包括PDF,HTML,XML,XLS,CVS等等。

而iReport就是一个制 作Jasperreport的XML文件的可视化开发工具。

只是一个UI。

二、安装说明2.1 基本安装现在最新的版本是iReport 0.5.1 (Aug 27, 2005).下载后解压然后在根目录双击iReport.bat就可以用了,但是为了可以使用external ttf font还必须要把 iReport-0.5.1/fonts 加到环境变量里面去。

2.2 了解制作报表用的包下载后到到 iReport-0.5.1/lib 里看看,你就可以发现iReport的真面目了。

(1) jasperreports-1.0.1.jarjasperreports 是iReport的核心内容。

它是一个强力的报表产生工具,他有能力描述丰富内容到屏幕上、到打印机或到PDF, HTML, XLS, CSV和XML文件。

它完全用Java编写的,并可在各种Java应用(包括J2EE或WEB应用)中用来产生动态内容。

它的主要目的是以一种简单而灵活 的方式来帮助创建导向的页面。

JasperReports组织根据在一个XML文件中定义的报表设计通过JDBC来接受来自一个关系数据库中的数据. 为了以数据来填充报表,报表设计必须首先被编译。

jasperreports的官方网站:/(2) itext-1.3.1.jariText是一个开放源码的Java类库,是用来生成PDF文件的。

iText的官方网站:如果要在生成的pdf文件显示中文等亚洲字符,还必须下载itext的亚洲字符包。

tTextAsian的官方下载地址:/downloads/iTextAsian.jar(3) jfreechart-1.0.0-rc1.jarjfreechart是一款免费的、功能强大的统计图生成工具,可以直接生成PNG,JPG 等各式的文件。

iReport工具使用说明

iReport工具使用说明

1.1iReport工具使用说明1.1.1iReport 的使用iReport 是一个能够创建复杂报表的开源项目,它用纯java语言编写,是目前全球最为流行的开源报表设计器之一。

一、iReport运行环境iReport运行时需要SUN JAVA2 SDK 1.5及以上版本,为能编译我们的报表文件需要安装完整的JDK 注:在本文中iReport的版本是3.7.0二、报表结构栏(Bands)报表被分为若干个部分,每一个部分我们叫它“band”,每一个band都有自己的特性,在报表生成的时候有些会打印依次,有些会打印多次。

新建一个报表都会出现这7种类型的band,下面是对每一种类型的band分别介绍:Title:它是报表的标题。

Title段只在整个报表的第一页的最上面部分显示,除了第一页,不管报表中有多少页都不会再显示Title中的内容.Page Header:page Header段的内容将会在整个报表中的每一个页面中都会出现,显示的位置在页面的上部。

若是报表的第一页,Page Header的内容将显示在Title的下面。

除了页以外的的其他所有页面中,Page Header的内容都会显示在页面的最上端。

即页眉Column Header: 它是针对Detail的表头段,一般情况下在这个段画报表的标头。

Detail:它是报表的内容段,在此段中设计报表中需要重复出现的内容,detail段中的内容每页都会出现。

Column Footer:针对detail段的表尾端。

Page Footer:显示在页面的最下端,与Page Header想对。

即页脚Summary:表格的合计段,出现在整个报表的最后一页的Detail段的后边,一般用来统计报表中某一个或某几个字段的合计值。

三、测试每种类型栏的作用首先我们需要在报表中的每种类型的栏中添加不同的对象,来测试每种类型栏的作用。

第一步:选择“文件”点击new弹出如下对话框选择需要的模板点击“Open this Template”弹出如下图示修改Report name为:MyReport 选择保存路径点击下一步弹出“Congratluations!”点击完成。

iReport使用手册(简易配图基础版)

iReport使用手册(简易配图基础版)

iReport用户手册1.1什么是iReport?iReport是一个能够创建复杂报表的开源项目,并且它能调用JasperReports 库应用于任何一种java应用程序。

本身是分布式的且由符合GNU通用公共许可的百分之百纯java编写。

由于它丰富的图形界面,你能够很快的创建出任何一种你想要的报表。

iReport能够让我们提高技术方面的信心,比如它能降低学习JasperReports的XML语法的难度,而且能够为熟练的技术人员节省大量的时间并能开发出非常精细的报表。

2.1功能特点以下将列出iRreport的一些比较突出的功能:•百分之九十九支持JasperReports XML标签•所见即所得的报表编辑器,也就是说它具有创建矩形,线,椭圆,正文区域,标签,图表,子报表,条码等完善的工具图标供使用。

•嵌入式编辑器带有灯泡提示代码规则•支持Unicode和非拉丁语言(俄文,中文,日文,韩文…)•文档结构浏览器•完善的报表编译器和输出器•支持所有可以通过JDBC连接的数据库•支持所有有效的数据源•自动报表创建向导•支持子报表•源文件的备份•支持文档模版•支持TrueType字型•支持本地化•可添加插件扩展功能•完全支持脚本•支持图表•标准对象库管理(页码…)•支持拖拽•无限制的取消/重做3.1下载地址iReport-5.5.0-windows版下载链接:/project/ireport/iReport/iReport-5.5.0/iRe port-5.5.0-windows-installer.exe4.1安装流程1.打开安装文件,点击Next2.点击I Agree3.点击Next4.选择安装目录后,点击Next5.点击Install5.点击Finish安装完成5.1使用流程5.1.1新建一个文件1.点击菜单栏文件,选择New2.选择Report和Blank A4,后点击Launch Report Wizard3.编写Report name,选择存放目录后点击下一步4.默认选择Empty datasource,点击下一步5.点击下一步6.点击下一步7.点击完成新建完成5.1.2设置纸张大小以及页面布局飞1.选中文件名后,点击右键选择Page format..2.设置页面格式以及排版模式我们报表的设计是选择纸张大小A3,横向排列,纸张分两页此处特别强调Columns的作用就是将纸张界面分成相等的几部分,一般设置为2,也就是等分为两部分,左边和右边界面相等3.由于我们是画报表所以只需要保留细节(Detail)即可,因此将Title(标题),Page Header(页眉),Column Header(列标题),Page Footer(页脚),Summary(总结),Background(背景)项删除4.打开组件面板和属性面板,默认是打开状态5.1.3主要组件以及属性介绍1.常用组件Break介绍(组件都是拖移使用,直接点住不放,拖向细节界面空白处)Break是分页符,用来分页,可拖移动到细节编辑框中使用,使用效果如下2.常用组件Line介绍(组件都是拖移使用,直接点住不放,拖向细节界面空白处)Line用来画线条,在表格无法实现的情况下可以使用线条加以补充,使用效果如下3.常用组件Static Text介绍(组件都是拖移使用,直接点住不放,拖向细节界面空白处)Static Text是静态文本,是最常用的一个组件,表格的基本组成大多是静态文本,也就是一个个的表格框,可以输入相关信息,相关效果如下属性框截图:以下为重要内容:Static Text主要属性介绍,基本属性里的Left,Top,Width,Height,Forecolor,Backcolor,Opaque和Text properties里的Font name,Size,Horizontal Alignment,Vertical Alignment,Pdf EncodingStatic Text 基本属性1.Left----------表格框跟界面最左侧距离调整2.Top-----------表格框跟界面最左侧距离调整3.Width--------表格框本身的左右长度调整4.Height--------表格框本身的上下长度调整5.Forecolor----前景色调整(可以理解为字体颜色调整)6.Backcolor----背景色调整7.Opaque-------是否透明选项,可以选择,如果想前景色和背景色调整生效,勾选即可Text properties 属性1.Font name----字体名称调整2.Size------------字体大小调整3.Horizontal Alignment-------水平对直,可调整字体在表格框中的位置4.Vertical Alignment-----------垂直对直,可调整字体在表格框中的位置5.Pdf Encoding--------PDF编码,一般选择UniGB-UCS2-H (Chinese Simplified)4.常用组件Text Field介绍(组件都是拖移使用,直接点住不放,拖向细节界面空白处)Text Field是文本字段,也就是一个动态文本,可以将变化的数据传入表格,相关效果显示Text Field主要属性介绍,Text Field Expression文本域表达式,可以修改文本字段的表达方式可以在parameters(参数)中新建一个,然后将原始生成的参数替换一个命名5常用组件Image介绍(组件都是拖移使用,直接点住不放,拖向细节界面空白处)将Image拖移至细节页面空白处后,会弹出一个图片路径选择框,选择已经保存的图片点击打开后即可调整图片大小相关显示如下Image主要属性介绍,Image Expression路径设置可手动设置图片路径地址5.1.4使用iReport打造一个简单报表报表原图:第一步:拖移6个Static T ext到细节界面空白处,调整好表头的字体,字体大小,背景色,前景色,详细信息参照常用组件Static Text介绍中,效果图如下:第二步:框选已经做好的表头,使用Ctrl+C复制,效果图如下第三步:粘贴后进行前景色和背景色的调整,将粘贴项的Opaque(是否透明)改为不勾选状态,效果图如下第四步:将数据填充进报表,完成。

ireport开发说明文档

ireport开发说明文档

i r e p o r t开发说明文档-CAL-FENGHAI.-(YICAI)-Company One1iReport用户手册目录Giulio Toffoli ...................................................................................................... 错误!未定义书签。

1 序言................................................................................................................ 错误!未定义书签。

什么是iReport ........................................................................................ 错误!未定义书签。

功能特点: ............................................................................................. 错误!未定义书签。

iReport 社区:......................................................................................... 错误!未定义书签。

鸣谢: ..................................................................................................... 错误!未定义书签。

2 入门................................................................................................................ 错误!未定义书签。

iReport使用指南

iReport使用指南

iReport使用指南IReport使用指南使用ireport0.2.3作为范例报表属性Report name 定义报表模板名Page size页面尺寸Preset sizes 预设尺寸有多种标准页面尺寸可选择,也可以自定义页面尺寸Width 页面的宽度 (可以选择单位)pixels(像素)inches(英寸)cm(厘米)mm(毫米)Height 页面的高度同上Orientation页面打印方向Portrait纵向Landscape 横向默认值为PortraitPage Margin 页边距Top 上边距Bottom 下边距Left 左边距Rigth 右边距Report Columns 报表列Columns 报表的列数默认值为1Width 列的宽度默认值为555 Spacing 列和列之间的空隙默认值为0Scriptlet class 在模板中使用的脚本类Title on new page 标题是否占用一页True(标题占用一页) False(标题不占用一页)默认值为falseSummary on a new page 总结是否占用一页同上默认值为falsePrint order 当列数不为1时,数据填充方向Vertical (垂直方向) Horizontal (水平方向)默认值为VerticalWhen no data 当数据源中没有记录数据时NoPages(不产生页面)BlankPage(产生一个空的页面)AllSectionsNoDetail(显示除了Detail条目以外的所有条目) 默认值为NoPagesXML encoding 报表模板(xml)使用的编码规则请参考相应的字符集编码公共属性Band 包含被选元素的条目名Top 指定被选元素在条目中的x轴坐标Left指定被选元素在条目中的y轴坐标Width 指定被选元素的宽度Height 指定被选元素的高度Foreground 前景色Background 背景色Transparent 是否透明指定被选元素的背景色是否透明OpaqueTransparent默认值为OpaqueRemove line when blank 为空时移除线当条目中的一条记录所有字段都为空时,是否把该条记录从条目中移除true(移除)false(不移除)默认值为truePrint in first whole band 在第一个条目中输出当你选择Print repeated values为false时,在换页或换列时,是否重新输出该值默认值为falsePrint when detail overflows 当超出细节条目时输出当由于某些原因导致当前条目不能在当前页内被打完,当开始一个新的页接着输出时,被选元素是否在新页上重新输出默认值为falsePrint repeated values 输出重复值当多条记录连续中某字段的值都相同时,是否每条记录的该字段都输出false(仅输出第一条记录中的该字段,其余的都不输出)默认值为truePosition type 位置类型当报表Section因为拉伸而受到影响时,指定被选元素的位置Float(被选元素根据周围元素的尺寸所移动)FixRelativeT oTop(元素保持相对于它所在条目顶部的位置)FixRelativeT oBottom(元素保持相对于它所在条目底部的位置)默认值为FixRelativeToTopPrint When group changes 当组改变时输出当指定的组发生改变时,输出被选的元素Print When Expression 是否当表达式成立时输出表达式成立时输出被选元素默认值为false,一般不要修改这个值参数属性Parameter name 参数名Parameter class type 参数类型Is for prompting 是否提示输入值是否在应用程序根据参数值提供动态提示Default value expression 默认值表达式Parameter description 参数描述当Is for prompting 为true时,返回该值作为应用程序的提示值字段属性Field name 字段名Field class type 字段的类型Field description 字段描述通常作为字段的别名来使用变量属性Variable name变量名Variable class type 变量类型Calculation type 计算类型Nothing(无)Count(数量)Sum(和)Average(平均值)Lowest(最小值)Highest(最大值)StandardDeviation(标准值)Variance(方差)System(系统)默认值为NothingReset type 重置类型报表变量的值可以在每一个迭代下改变,使用Reset type来决定变量的值在什么时候重新计算None(变量的值不重新计算)Report(变量的值仅在报表数据填充时计算一次)Page(变量的值在报表的每个页计算一次)Column(变量的值在报表的每列计算一次)Group(变量的值在报表的每个组计算一次)默认值为ReportReset group 重置组当Reset type 为group时,指定组Variable expression 变量表达式定义计算变量的值的表达式Initial value expression 初始值表达式初始化变量的起始值系统内建变量PAGE_MEMBER(当前页面号)COLUMNS_MENBER(当前列号,页面列数*(当前页面号-1)+当前列在当前页的号) REPORT_COUNT(报表中的记录数,指从数据源中得到的记录)PAGE_COUNT(当前页中的记录数)COLUMNS_COUNT(当前列中的记录数)Groupname_COUNT(当前组中的记录数)字体属性Report font 可以选择已经定义好了的字体类别Font name 字体名Size 字体的尺寸PDF font name PDF字体名Bold 加粗Italic 斜体Underline 下划线Strike Trough 穿越线LineSpacing 线间隔Single(单)1_1_2(1.5)Double(双)Horizontal alignVertical alignPDF Embedded 指定PDF字体是否被嵌在文档中PDF Encoding PDF字体的编码类型静态文本元素属性Static Text 静态文本的内容文本域元素属性Textfield Expression Class 文本域表达式的类型Evaluation time 表达式计算的时刻具体细节可参考图象属性说明Evaluation group 计算组当Evaluation timed为Group时,指定计算表达式时刻的组Stretch with overflow 超出时拉伸当文本域的内容不能完全被显示在模板定义的区域内时,是否允许文本域拉伸Blank when null 为空时显示空白当文本域内容为空时,是否什么都不显示Pattern 模式模式用来定义文本域表达式输出的格式Textfield expression 文本域表达式文本域的内容超链接属性图形元素属性Pen 画图形所使用的线的类型None(没有线)Thin(细线)1 Point(普通的线)2 Point(中等的线)4 Point(粗的线)Dotted(虚线)Stretch type 当报表Section被拉伸时,图形元素的拉伸行为类型NoStretch(不拉伸)RelativeToTallestObject(图形元素将适应元素组中最高的元素拉伸) RelativeToBandHeight(图形元素将适应条目拉伸)Fill 图形填充方式Solid(实心填充)线元素属性Line direction 线的方向TopDown(从上到下)BottomUp(从下到上)矩形元素属性Radius 矩形四个角的弧度半径(圆角或直角)如果radius为0,该矩形为直角图象属性Image Expression 图象表达式定义被显示图象的表达式Image Expression Class 图象表达式类型ng.Stringjava.io.File.URLjava.io.InputStreamjava.awt.Image默认值为ng.StringScale Image 图象显示方式Clip 图象不伸缩,仅仅显示在模板里定义区域(长*宽)的那部分图象FillFrame 图象伸缩,图象以完全适合模板定义区域的方式显示RetainShape 图象伸缩,以原有图象的比例伸缩以适合在模板定义的区域里显示(适合高度或宽度)默认值为 RetainShapeUsing cache 是否使用缓存默认值为TrueVertical alignment Top(顶部) Middle(中间)Buttom(底部)。

Java_实现iReport打印

Java_实现iReport打印

iReport报表打印功能代码编写环境系统:windows xp开发工具:Myeclipes6.0JDK版本:Java6(jdk6.0,jre6.0)服务器:Tomcat5.5Ireport版本:iReport-2.0.5 windows 安装版(iReport-2.0.5-windows-installer.exe)实现步骤一、iReport-2.0.5安装。

选择安装路径默认安装(一直点击下一步)。

二、将iReprot的jasperreports-2.0.5.jar文件复制到Myeclipes中你工程的WEB-INF/lib目录下。

jasperreports-2.0.5.jar文件所在位置在你iReprot的安装路径下,我的是C:\Program Files\JasperSoft\iReport-2.0.5\lib。

三、要实现打印的Jsp文件编写,Jsp文件中打印按钮或者打印连接应该提交给一个javascript,具体代码如:<a href="javascript: print(${exammanage.oid })"><fontcolor="blue">打印</font></a>javascript代码如下function print(oid){if(!confirm("确定要打印该资格证吗?"))return ;window.showModalDialog('${ctx}/exam/exammanage/examprint_cert.jsp?oid='+oid,'','dialogWidth:50px;dialogHeight:150px;dialogTop:1000px;dialogLef t:1000px');document.forms[0].flg.value = "0";document.forms[0].action="${ctx}/ExamPermitPrint.html";document.forms[0].submit();}代码解释:1、window.showModalDialog('${ctx}/exam/exammanage/examprint_cert.jsp?oid='+oid,'','dialogWidth:50px;dialogHeight:150px;dialogTop:1000px;dialogLef t:1000px');此段的功能是显示打印提示窗口,我的文件是WebRoot路径下/exam/exammanage/路径下的examprint_cert.jsp文件,而且需要传一个你所要打印的记录的唯一字段(数据库中唯一代表一条记录的字段),我这里用OID。

iReport使用方法

iReport使用方法

iReport使⽤⽅法
新建报表,依次单击“⽂件/New…”,弹出窗⼝
选择”Blank A4”,单击”Open this Template”
依次单击“下⼀步/完成”,得到⼀个新的report
单击”OK”按钮完成数据集设置
从“组件⾯板”拖动⼀个”Static Text”控件到设计窗⼝的Title Band,并双击输⼊⽂字
从左侧导航⾯板“Report Inspectpr”的“Fields”中拖动要显⽰的属性字段到设计窗⼝的Detail Band
Detail Band中的字段在制成Report时将循环显⽰,⽽Column Header是列标题,只显⽰⼀⾏,本⽂不希望显⽰列标题,因此删除Column Header中的标签框。

调整Detail中的Text Field位置和⼤⼩
⾄此设计⼯作基本完成,此时可以将不显⽰的⾯板删除(单击此⾯板,右击选择“删除”)或调整各Band的标尺将其隐藏。

单击“Preview”可进⼊预览页⾯
最后保存⽂件。

选中导航⾯板”Report Inspector”的” Parameters”,右击选择添加参数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ireport制作报表的流程:首先,我们用ireport设计报表的样式,通过编译生成.jasper文件,为java做准备。

其次,我们在java中定义report公共类,来解析.jasper文件。

最后,通过流输出到页面显示。

1.用ireport设计简单报表:在这里我们选用ireport3.0,因为3.0比较稳定。

1.1,首先,新建一个报表文件,如下图:有title、pageHeader、columnHeader......等等栏。

1.2,title栏是用来放置标题的;pageHeader栏是放副标题和日期等;columnHeader栏是放表头的;detail栏是放详细信息(向下遍历数据显示);summary栏是放置图和交叉报表的;左下角的文件结构有“参数”、“字段”和变量,参数是用来定义一些静态文本的,可以通过后台进行传值,字段是定义VO的属性,变量是用来参与运算的;1.2.1首先我们来定义一个参数叫做title,选择参数--->"添加"----->parameter,如下图:在弹出的对话框的参数名中输入title后点击确定,然后将title参数拖拽到title栏中,如下图:在这里我们可以设置title的字体、大小和位置等。

1.2.2用同样的方法我们建立两个字段:username和password:分别拖拽到detail栏中,并调整大小、位置和边界:接下来我们可在对于的列上加上表头:点击工具栏的“T”静态文本,在columnHeader栏中画出:以上一个简单的报表就画好了,我们点击工具栏的“执行报表”按钮,编译成.jasper文件。

1.3,接下来我们定义java类Reports.java:import java.io.ByteArrayOutputStream;import java.io.File;import java.io.IOException;import java.io.PrintWriter;import .URLEncoder;import java.util.ArrayList;import java.util.List;import java.util.Map;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.jasperreports.engine.JRException;import net.sf.jasperreports.engine.JRExporterParameter;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperPrint;import net.sf.jasperreports.engine.JasperReport;import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;import net.sf.jasperreports.engine.export.JExcelApiExporter;import net.sf.jasperreports.engine.export.JRHtmlExporter;import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;import net.sf.jasperreports.engine.export.JRXlsExporterParameter;import net.sf.jasperreports.engine.util.JRLoader;public class Reports {/**//** 生成HTML报表显示*/public void selectHtmlReport(List list,HttpServletResponse response,String url,Map map){response.setContentType("text/html;charset=utf-8");File reportFile = new File(url);JasperReport jasperReport = null;try {jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath()); } catch (JRException e) {e.printStackTrace();}JRBeanCollectionDataSource jrbean = new JRBeanCollectionDataSource(list); JasperPrint jasperPrint = null;try {jasperPrint = JasperFillManager.fillReport(jasperReport,map,jrbean);} catch (JRException e) {e.printStackTrace();}JRHtmlExporter exporter = new JRHtmlExporter();PrintWriter out = null;try {out = response.getWriter();} catch (IOException e) {e.printStackTrace();}exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_R OWS,Boolean.TRUE);try {exporter.exportReport();} catch (JRException e) {e.printStackTrace();}}/**//** 导出EXCEL报表*/public void selectExcelReport(List list,HttpServletResponse response,String url,Map map,String reportName){try{//加载jasper文件File reportFile = new File(url);JasperReport jasperReport =(JasperReport)JRLoader.loadObject(reportFile.getPath());//装载数据JRBeanCollectionDataSource jrbean = new JRBeanCollectionDataSource(list);//构造jasperPrint对象JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, jrbean);//输出流ByteArrayOutputStream oStream = new ByteArrayOutputStream();//构造输出对象JExcelApiExporter exporter = new JExcelApiExporter();exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"./image?image=" );exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, oStream);exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEE N_ROWS,Boolean.TRUE); // 删除记录最下面的空行exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolea n.FALSE);// 删除多余的ColumnHeaderexporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boo lean.FALSE);// 显示边框exporter.exportReport();//excel文件名String fileName = reportName + ".xls";response.reset();response.setHeader("Content-Disposition", "attachment;filename=\"" + URLEncoder.encode(fileName,"utf-8") + "\"");//写输出流byte[] bytes = oStream.toByteArray();if(bytes != null && bytes.length > 0) {response.setContentType("application/vnd.ms-excel;charset=utf-8");response.setContentLength(bytes.length);ServletOutputStream ouputStream = response.getOutputStream();ouputStream.write(bytes,0,bytes.length);ouputStream.flush();ouputStream.close();}else{}}catch(Exception ex){ex.printStackTrace();}}/*** 功能:生成默认图形报表的处理方法* 方法名:selectHtmlReport* @param List list 数据集* @param HttpServletResponse response* @param HttpServletRequest request* @param String url 解析的报表文件* @param Map map 报表用的参数* @author 郭洪治 2010-03-15* @return void*/public void selectHtmlReport(List list,HttpServletResponseresponse,HttpServletRequest request,String url,Map map){response.setContentType("text/html;charset=utf-8");File reportFile = new File(url);JasperReport jasperReport = null;try {jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());} catch (JRException e) {e.printStackTrace();}JRBeanCollectionDataSource jrbean = new JRBeanCollectionDataSource(list);JasperPrint jasperPrint = null;//设置报表图形默认存放物理目录String outPutDir =request.getSession().getServletContext().getRealPath("/")+"/reportimg/";//加载图形报表的相对目录String sourceDir = request.getContextPath()+"/reportimg/";try {File file = new File(outPutDir);//判断此目录是否存在if(!file.exists()){file.mkdir();}jasperPrint = JasperFillManager.fillReport(jasperReport,map,jrbean);} catch (JRException e) {e.printStackTrace();}JRHtmlExporter exporter = new JRHtmlExporter();PrintWriter out = null;try {out = response.getWriter();} catch (IOException e) {e.printStackTrace();}exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR_NAME,outPutDir);exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,sourceDir);exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR, Boolean.TRUE);exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);try {exporter.exportReport();} catch (JRException e) {e.printStackTrace();}}/*** 功能:生成指定目录图形报表查询的处理方法* @param List list 数据集* @param HttpServletResponse response* @param HttpServletRequest request* @param String url 解析的报表文件* @param Map map 报表用的参数* @param String imgDir 图形生成的目录* @author 郭洪治2010-01-20* @return void*/public void selectHtmlReport(List list,HttpServletResponseresponse,HttpServletRequest request,String url,Map map,String imgDir){response.setContentType("text/html;charset=utf-8");File reportFile = new File(url);JasperReport jasperReport = null;//生成图形目录String outPutDir =request.getSession().getServletContext().getRealPath("/")+"/"+imgDir;//图形源目录String sourceDir = request.getContextPath()+"/"+imgDir;try {jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath()); } catch (JRException e) {e.printStackTrace();}JRBeanCollectionDataSource jrbean = new JRBeanCollectionDataSource(list); JasperPrint jasperPrint = null;try {jasperPrint = JasperFillManager.fillReport(jasperReport,map,jrbean);} catch (JRException e) {e.printStackTrace();}JRHtmlExporter exporter = new JRHtmlExporter();PrintWriter out = null;try {out = response.getWriter();} catch (IOException e) {e.printStackTrace();}//设置图片存入的物理目录exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR_NAME,outPutDir);//设置图片显示的目录exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,sourceDir);//生成图片到目录exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR, Boolean.TRUE);exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_R OWS,Boolean.TRUE);try {exporter.exportReport();} catch (JRException e) {e.printStackTrace();}}/*** 功能:导出多sheet报表的处理方法* 方法名:selectAllExcelReport* @param List list 数据集* @param HttpServletResponse response* @param String url 解析的报表文件* @param String reportName 生成excel保存的名字* @author 郭洪治* 创建时间:Nov 3, 2009 2:08:31 PM*/@SuppressWarnings("unchecked")public void selectAllExcelReport(List list,HttpServletResponse response,String url,String reportName){try{//加载jasper文件File reportFile = new File(url);JasperReport jasperReport =(JasperReport)JRLoader.loadObject(reportFile.getPath());List jasperPrintList = new ArrayList();int listSize = list.size();String sheetNamesArray[] = new String[listSize];for(int i = 0; i < listSize; i++){Map eachMap = (Map)list.get(i);List eachList = (List)eachMap.get("ls");sheetNamesArray[i] = (String)eachMap.get("title");//装载数据JRBeanCollectionDataSource jrbean = new JRBeanCollectionDataSource(eachList); //构造jasperPrint对象JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, eachMap, jrbean);jasperPrintList.add(jasperPrint);}//输出流ByteArrayOutputStream oStream = new ByteArrayOutputStream();//构造输出对象JExcelApiExporter exporter = new JExcelApiExporter();exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"./image?image=" );exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jasperPrintList);exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, oStream);exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEE N_ROWS,Boolean.TRUE); // 删除记录最下面的空行exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolea n.FALSE);// 删除多余的ColumnHeaderexporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boo lean.FALSE);// 显示边框exporter.setParameter(JRXlsExporterParameter.SHEET_NAMES, sheetNamesArray);exporter.exportReport();//写输出流byte[] bytes = oStream.toByteArray();if(bytes != null && bytes.length > 0) {response.reset();response.setContentType("application/vnd.ms-excel;charset=utf-8");response.setContentLength(bytes.length);//excel文件名String fileName = reportName + ".xls";response.setHeader("Content-Disposition", "attachment;filename=\"" + URLEncoder.encode(fileName,"utf-8") + "\"");ServletOutputStream ouputStream = response.getOutputStream();ouputStream.write(bytes,0,bytes.length);ouputStream.flush();ouputStream.close();}}catch(Exception ex){ex.printStackTrace();}}}1.4,在action中调用:Map<String,String> parameters = new HashMap<String,String>();//定义参数mapparameters.put("title", "我的报表"); //添加参数String url = “WEB-INF/report/test.jasper";//定义报表文件路径Reports report = new Reports();//创建报表类对象report.selectHtmlReport(list, response, url, parameters);//调用生成表方法其中list是从数据库中查询的值,放的是VO对象,VO对象的属性和.jasper报表文件中定义的字段要一一对应。

相关文档
最新文档