iReport45学习笔记 1Word格式文档下载.docx
- 文档编号:1548966
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:32
- 大小:1.63MB
iReport45学习笔记 1Word格式文档下载.docx
《iReport45学习笔记 1Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《iReport45学习笔记 1Word格式文档下载.docx(32页珍藏版)》请在冰点文库上搜索。
下面做一个小的总结,主要是自己的理解加上网上前辈的总结。
接触的iReport是从4.1.0开始的,我现在用的是4.5.0的版本制作。
iReport从3.7.5之后版本已经与之前有了很大的不同,所以如果你用的还是4.0以前的版本的话可能制作过程会存在差异。
下面开始…….
1iReport介绍
1.1概述
iReport是为JasperReports设计的强大的,直观的,易于使用的可视化报表设计器采用纯Java开发。
这个工具允许用户可视化编辑包含charts,图片,子报表等的复杂报表。
iReport还集成了JFreeChart图表制作包。
允许用户可视化地编辑XMLJasperDesign文件。
用于打印的数据可以通过多种方式获取包括:
JDBC,TableModels,JavaBeans,XML,Hibernate(支持HQL查询语言),CSV等。
它支持多种输出格式包括:
PDF,RTF,XML,XLS,CSV,HTM。
1.2运行环境
JDK:
JAVA1.5包括,以上
1.3下载地址
下载地址:
http:
//jasperforge.org/projects/ireport
版本实时更新的,如图1-1:
图1-1
2准备
2.1数据库连接方法1
Step1:
打开iReport工具,进入主页面如图2-1,点击红色框着的图标。
图2-1
Step2:
点击之后出现图2-2,DataSource配置信息窗口,选择JDBCconnection节点,next
图2-2
Step3:
填写相应的连接信息,点击Test测试连接成功,之后保存。
如图2-3
2.2数据库连接方法2
打开iReport工具后进入首页,点击如图2-4图标即可
图2-4
点击之后出现图2-5,点击new按钮出现2.1中图2-2,之后步骤一样。
图2-5
3开始制作表
3.1通过第一张简单表了解iReport各个部分功能
进入iReport首页,新建报表有两种方式1.在首页中点击如图3-1
图3-1
2.在主页面中菜单“文件—New”和方法1一样弹出如图3-2窗口,选择需要使用的纸张样式。
图3-2
之后根据自己习惯操作,选择OpenthisTemplate直接保存报表后写SQL。
选择LaunchReportWizard需要有准备的SQL代码。
本人更倾向于第一种。
点击OpenthisTemplate填写报表的名字和存放位置,之后点击下一步,完成。
图3-3
进入首页如图红色框,点击填写报表需用到的SQL代码。
如图3-4和SQL代码窗口Reportquery图3-5
图3-4
图3-5
Step4:
Reportquery代码窗口,点击保存,在主页面左面中ReportInspector(后面有介绍)中的Fields中可以看到Sql中查询出来的结果。
图3-6
Step5:
报表的简单设计,和预览。
根据业务需要设计报表,直接拖动需要的数据字段到相应的位置,然后预览效果。
图3-7
图:
3-7
Step6:
点击Preview预览,查看图3-8,第一页,3-9
图3-8
图3-9
图3-9【页头和summary的位置】
3.2iReport中中文显示问题
这个主要说明在设计模板的时候有字体而在预览或者打印的时候没有显示的配置。
步骤:
选中没有所有的字体,点开属性配置。
如图3-10
图3-10
如果要添加字体的话,这个可以上网搜索下如何配置,这里不再说明。
【转帖:
】
选中字段->
右键->
properties->
font(双击也可以)
Reportfont选择全局的字体(仅限于该报表)
Fontname选择在ireport里面显示的字体
Pdffontname选择在pdf里面显示的字体
Rotation选择内容是否旋转(很有用的选项)
PDFEncoding中文要用UniGB-UCS2-H,外部字体要选Identity-H
4iReport中各个窗体介绍
4.1左侧边栏介绍
报表的动态对象变量、参数、字段
●字段(Fields):
是数据库抽取出来的,希望在报表中出现的数据库内容。
比如一个ID的所有值。
$F{filedsName}
●参数(Parameters):
这是你的应用需要提供给报表的入口,比如你希望在报表被解释的时候提供Where语句的条件值,那么就可以使用参数(Parameters)。
$P{parameterName}
●变量(Variables):
这是报表中一些逻辑运算的表现,比如统计值。
$V{variablesName}
4.2中间栏
报表被垂直分成若干个部分,每一个部分我们叫它“band”。
每一个band都有自己的特性,在报表生成的时候有些会打印一次,有些会打印多次。
报表的结构大致是几个部分:
title、pageHeader、columnHeader、detial、columnFooter、pageFooter、summary、groupHeader、groupfooter。
●Title:
title段只在整个报表的第一页的最上面部分显示,除了第一页,不管报表中有多少个页面也不会再出现Titleband中的内容。
就是报表的标题。
●pageHeader:
pageHeader段中的内容将会在整个报表中的每一个页面中都会出现,显示的位置在页面的上部。
如果是报表的第一页,pageHeader中的内容将显示在TitleBand下面,除了第一页以外的其他所有页面中,pageHeader中的内容将显示在页面的最上端,即页眉。
报表的一些公共要素,比如页码、创建时间、创建人等信息放置在这里是比较好的选择。
●columnHeader:
无可非议的这里是放置列的名称,记住不是列数据。
●Detial:
报表内容段,在这个Band中设计报表中需要重复出现的内容,Detail段中的内容每页都会出现。
比如销售记录数据。
●columnFooter:
放置列级别的统计计算值或是列的说明。
●pageFooter:
显示在所在页面的最下端,即页脚。
放置页级别的统计值或是页的说明。
4.3组建介绍
图4-2
】主要组件会在报表设计中用到
我就介绍几个比较常用的吧,如StaticText、TextField、Subreport…
StaticText:
字面意思就是静态文本,可以在上面任意的写文本字符等,需要特别注意的是中文不显示的问题。
解决方法:
选中某一个带中文的StaticText或TextField,查看“属性”
1:
Fontname:
属性设置为“宋体”或其他中文字体;
2:
PdfFontnameisnow…:
这个属性也得设置为STSong-Light,我特意试了其他的好几个值结果都是不能正常显示,除了设成该值外。
3:
PdfEncoding:
这个属性也得设置为UniGB-UCS2-H(ChineseSimplified),若设置为UniGB-UCS2-V(ChineseSimplified)这个属性则该域将会竖着排列了。
TextField:
文本字段,这个就是从库里读出来的字段啦。
该组件若出现中文问题跟StaticText处理方法一样。
这个组件特别值得一提的属性是TextFieldExpression:
文本域表达式,可以写表达式。
我们右键某一个TextField选择EditExpression
另外还需要提的一个属性是“Blankwhennull”当选中该属性时则表示若库里没有值为null的时候ireport将会进行设空处理,以至于出来的报表中不会出现null字符串。
Subreport:
子模版,为什么需要它呢?
我的理解是当我们有一个比较大的报表的时候,可能就需要分多个模块,为了层次分明一点,每一个模块就可以做成一个个的子模版了。
在你使用该属性的时候,需要最好先建好一个子模版(就是另外一个子报表)。
这个组件需要注意的几个属性分别是SubreportExpression子报表表达式,
另外一个属性是Parameters词义是参数,就是这个子模版需要哪些参数?
我认为这3个组件是最重要的组件,就重点的讲了一下,包括需要注意的点,另外ireport其实还提供了很丰富的组件如Chart、Crosstab、Image、List、Frame等等,就不一一介绍啦,大家可以自己设计一个报表将这些组件都用上一遍就大概明白了,其实很多的属性都是一样的比如Left、Top、Width、Height等基本上都有这些属性,ireport是可视化的可以拖拽这些组件,直到你满意位置,具体的设计还是得看大家自己啦,当然一般报表都是很严格的,客户都会提供模版,所以我们只需要照着模版去画就OK啦。
5iReport表制作
5.1简单报表
见3开始制作报表,就是简单报表的设计过程。
5.2子报表
子报表在报表开发中是常见到的一个思路。
例如:
批量打印,给你一个批次好,然后打印出该批次下所有物品的信。
很多情况下是根据主表查出的字段值不唯一,然后作为参数查找信息,这时候常用的就是主子表了。
5.2.1主子表制作
首先需要知道主子表的关系此例为主子表在数据库中为主从表关系,根据主表的Id作为条件来查找出字表中与主表相关的信息,显示出来。
这里子报表为信息。
首先要制作出一个子报表。
再设计字表的时候一般需把字表的外边距全部去掉。
如图5-1没有边距的字表。
图5-2为报表属性,显示边距为0
图5-1
图5-2
报表中SQl:
select*fromfams_fixed_assert_infowherefixed_assert_id=$P{fixedAssertId};
【主表传递过来的参数】
参数的配置:
在报表的Parameter中右击添加参数,这个参数的属性和名称必须和主表中传递过来的参数一模一样。
如图:
5-3子报表中的参数,在主表配置向从表中传递参数的时候需要配置参数名和这个一模一样。
图5-3
主表的设计
主表的SQL:
selectfixed_assert_idfromfams_fixed_assert_infowherebatch_serial=$P{batchSerial};
【根据这个参数查找出该批次下说有资产信息的ID】
如图设计好没有添加subReport组件的珠宝表5-4
图5-4
Step3然后在主键面板中拖动subreport组件到detail中的位置【具体位置放在哪个band中需要根据业务需求而定】步骤如图5-5到5-9
图5-5【下一步】
图5-6【下一步】
图5-7【下一步】
图5-8【完成】
图5-9
配置参数,鼠标选中添加到主表中的subreport组件,产看属性给参数配值。
图5-11
图5-11【选择配值跳出图5-12】
图5-12【点击modify跳出图5-13】
图5-13【点击小按钮选择值跳出图5-14】
图5-14【双击对应的值,为参数赋值点击apply即可】
图5-15【配值完成】
Step5:
preview预览显示。
图5-16
注意:
在配值主从报表的时候往往在没有数据的时候回不显示数据这样最好在属性中配值一下。
在whennoDate中不要选择nopage可以选择blankpage
时间格式的配值:
图5-17设置,图5-18结果
图5-17
图5-18
5.2.2主表向子表传参
在5.2.1中已经阐述过,主要注意的是主表与从表中的参数名称需要一模一样。
5.2.3主表接收子表返回参数
在有的时候会遇到主表接收字表返回的参数,也就是从字表向主表中传参,这个一般是在Variables中【一般是自定义的计算】自定义的参数返回给主表显示。
Step1:
首先在主子表中创建两个属性和属性名称一模一样的参数出来。
图5-19【子表中参数,有值】
图5-20【主表中参数,无值】
Step2根据SubReport来设置,选中主表中SubReport这个组件,查看属性ReturnValues
图5-21【配置子表的返回值】
图5-22【把定义的参数添加到这里】
Step3:
预览。
图5-23
5.2.4巧用主子表
巧妙利用主子表主要指多从主子表的利用。
利用场景主要主要shiite一个表单中出现两个以上的数据模块,如一个页面中需要显示三个table表单的数据而且数据是动态生成的。
这个就需要利用到多从报表的设计了。
多从报表的设计主要是band的位置的判断。
例如一张单中有三张报表,在第一字表中的detail中放入数据做为子表放在上级表的columnHeader中,然后在这个报表中detail中放入需要的数据。
然后这个含有子报表的报表作为字表放在下个表的columnheader中,以此类推可以实现多个报表的设计。
详情看:
中关于SubReport中的介绍
5.3Table类型报表
在iReport中是有table的控件的,这里写的table类型的表单主要是在不用table控件的情况下,运用iReport制作出table的样式。
以押金报表为例。
类型如图5-24
图5-24
设计报表样式布局,然后选中所有添加边框的列,右击选择PaddingandBorders设计自己需要的格式,例如Linewidth选择1选择实线。
就可以啦,当然可以根据需要设计边框上下左右的线的样式。
这样就设计好了类型为table的报表。
图5-25
图5-26
5.4iReport中自动换行的设置
主要是当你的text中显示的数据过长时候需要让之自动增加高度,换为两行显示。
但是注意的是同一行数据都需要随着其中一条数据的变化而变化。
局限性:
不适用于StaticText。
场景:
图6-1
分组,将位于同一行显示的字段进行分组。
此例仅一行。
操作:
选中位于同一行的字段右击点击Groupselectedelements进行分组如图6-2
图6-2
Step2:
配置这些字段的属性,1.PositionType=FixRelativetotop
2.StretchType=RelativetoBandHeight
3.BlankWhenNull选择当数据为空时候显示为空而不是NULL
4.StretchWidthOverFlow选择自动换行
配置之后的效果如图6-3
图6-3
6iReport中其他
6.1Sql语句的编写IN语句
我在sql中使用select*formtable1whereain($P{param})。
传入一个字符串"
a,b,c"
iReport会认为参数是一个查询条件而不是多个。
正确的写法:
select*formtable1whereain($P!
{param})。
传入参数不能是"
,而要是带上双引号,如"
/"
a/"
/"
b/"
/"
c/"
"
,不然拼出来的SQL就不对了。
事例传参:
前台JS中设计参数qrCodeIds
varfix0=selection[0].get("
barCodeId"
);
varqrCodeIds='
\"
'
+fix0+'
;
for(vari=1;
i<
len;
i++){
varfixi=selection[i].get('
barCodeId'
qrCodeIds+='
'
+'
+fixi+'
}
7Dorado7中iReport配置
关于Dorado7中使用iReport的配置以及说明请查看BSDN网站:
//wiki.bsdn.org/pages/viewpage.action?
pageId=3964933
Email:
jiazx0107@
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- iReport45学习笔记 iReport45 学习 笔记
![提示](https://static.bingdoc.com/images/bang_tan.gif)