ireport 5.6教程之参数(Parameters)

合集下载

ireport使用2--Subreport控件

ireport使用2--Subreport控件

ireport使⽤2--Subreport控件1、主报表实体类(如:Province)、⼦报表实体类(如:City)注意:主报表实体类属性含⼦报表实体类List(如:List citys);2、ireport构建主、⼦报表参看:ireport使⽤1(如:主mainReport.jasper,⼦subReport.jasper)3、主表增参:新增参数(Parameters):如SUB_DIR注意:此例中SUB_DIR存的是⼦subReport.jasper路径。

4、主报表关到⼦报表1)ireport组件-->Subreport,将其拖到主表需要展⽰⼦表内容的位置。

2)设置组件Subreport属性:5、JAVA代码String reportUrl= Thread.currentThread().getContextClassLoader().getResource("../report/mainReport.jasper").getFile();//主模板 String subUrl = Thread.currentThread().getContextClassLoader().getResource("../report").getFile();//⼦模板String temp = Thread.currentThread().getContextClassLoader().getResource("../temp").getFile();//⽣成pdf保存位置Map map = new HashMap<>();map.put("SD", subUrl );String fileName = new SimpleDateFormat("yyyyMMdd-HHmmss").format(new Date());JasperReport subreport = (JasperReport)JRLoader.loadObjectFromFile(reportUrl);JasperPrint subjasperPrint = JasperFillManager.fillReport(subreport, map, dataSource);JRPdfExporter exporter = new JRPdfExporter();exporter.setParameter(JRExporterParameter.JASPER_PRINT, subjasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, temp + fileName +".pdf");exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING,"UTF-8");exporter.exportReport();。

ireport图文教程(超详细)(word文档良心出品)

ireport图文教程(超详细)(word文档良心出品)

1下载iReportiReport是一个可视化的报表模板设计工具,使用此工具能方便地对报表进行设计。

在iReport中已经包含了jasperreports在运行时需要的jar 文件,在项目中的lib目录中包含Jasperreports-***.jar即可,其中***为版本号,比如2.0.3。

下载地址:/project/showfiles.php?group_id=64348,此文档编写时版本为2.0.3,如图:点击download出现以下界面:可以看到提供了多种下载包,其中:ØiReport-2.0.3-src.zip:为iReport的源代码ØiReport-2.0.3.tar.gz:为.tar.gz格式,一般用于Linux、Unix等非windows系统ØiReport-2.0.3-windows.installer.exe:为exe格式,一般用于windows系统ØiReport-2.0.3.zip:为zip格式,可以用于各类操作系统本文使用window版本为例,因此下载iReport-2.0.3-windows.installer.exe即可。

2安装iReport安装iReport需要先设置JDK环境,2.0.X版本要求JDK1.5环境(另参考文档)。

如果是windows系统,直接双击安装图标即可。

(如果是下载的ZIP文档,则将其解压到指定的目录,还需运行bin/startup.bat)。

如果是其他系统,比如Linux,Unix等,解压下载的安装文件(如下载的是tar.gz格式,使用tar xvfz iReport-2.0.3.tar.gz进行解压,如下载的zip格式,使用zip命令解压),然后运行bin/startup.sh即可。

以下以在windows上安装为例:A.欢迎界面,点击“N ext >”继续B.阅读license内容,点击“I A gree”继续C.选择安装组件,点击“N ext >”继续D.指定安装路径,点击“N ext >”继续E.指定程序组名称,点击“I nstall”即可F.等待安装过程G.安装结束,点击“F inish”完成在桌面上会出现如此图标:。

iReport开发使用步骤

iReport开发使用步骤

开发使用步骤(iReport 4.1.1)一、JasperReport 和iReport的介绍网上有这个软件的详细介绍。

可以搜索下,进一步了解。

这里只是简略介绍。

1、JasperReport 简介l 一个报表是由一个源代码的文件来描述,这个源文件就是由DTD(jasperreport.dtd, version 0.6.3 is listed in Appendix B)来定义的XML标记。

在0.5.3版本中它的源文件扩展名变成了.jrxml; 取代了一般的.xml扩展名。

报表的源代码被编译成jasper文件(扩展名是.jasper)。

l jasper文件是一种预报表,严密的说就像是java的类被封状成的对象。

Jasper文件通过你的应用程序来加载。

它被添加一个数据源的标记从而创建报表,接着它就能以你想要的格式输出(例如:pdf或xls)。

2、iReport 简介iReport也是开源组织中的一款免费软件,其主要作用是用来以可视化的方式设计生成JasperReport 所使用的报表格式文件,因为JasperReport 本身并未提供很好的可视化报表设计工具,iReport 的出现正好弥补了这个缺陷。

现在的iReport 的最新版本是4.1.3iReport运行时需要sun java2 SDK 1.5及以上版本,为了能编译我们的报表文件我们需要完整的安装JDK。

2、1、iReport几个重要的概念1)报表的动态对象变量、参数、字段○l字段(Fields):是数据库抽取出来的,希望在报表中出现的数据库内容。

比如一个ID 的所有值。

$F{ filedsName }○2参数(Parameters):这是你的应用需要提供给报表的入口,比如你希望在报表被解释的时候提供Where语句的条件值,那么就可以使用参数(Parameters)。

$P{ parameterName }○3变量(Variables):这是报表中一些逻辑运算的表现,比如统计值。

第一章JasperReport与iReport教程-34页精选文档

第一章JasperReport与iReport教程-34页精选文档

iReport几个重要的概念
编译、静态运行、动态运行
• Jasperreport 运行时需要的就是一个jasper后缀的文件,编译过程 其实就是把jrxml后缀的文件生成jasper后缀的文件。
• 静态运行和动态运行是相对的,后者带数据源运行,比如带数据 库运行。前者就是静态文本运行,和数据源无关,如果报表中出 现和数据源有关的对象,则以null显示。
iReport简介
iReport几个重要的概念
iReport 的输出格式:PDF、HTML、CSV、JAVA2D、 Excel、纯文字、JRViewer,其中最常用的是PDF、 JRViewer。
报表的动态对象变量、参数、字段
– 字段(Fields):是数据库抽取出来的,希望在报表中出现的 数据库内容。比如一个ID的所有值。$F{ filedsName }
报表结构
Summary:表格的合计段,出现在整个报表的最后一页中的Detail band 的后面,一般用来统计报表中某一个或某几个字段的合计值。 可能需要对几页(你的报表可能有几个页组成)的统计值。比如50个 销售记录共占用了3页,那么放置这些统计记录的统计值最好的地方 就是summary。
groupHeader:每个表的内容可能需要根据某个属性进行划分显示 内容和计算内容,比如希望以月份为单位每组分开显示销售记录,那 么就可以定义一个组,groupHeader就是放置组说明或是组标志最好 的地方。
columnHeader:无可非议的这里是放置列的名称,记住不是列数 据。
Detial:报表内容段,在这个Band 中设计报表中需要重复出现的内 容,Detail 段中的内容每页都会出现。比如销售记录数据。
columnFooter:放置列级别的统计计算值或是列的说明。

ireport创建多数据源报表

ireport创建多数据源报表

ireport创建模版首先贴一张最后运行效果图pdf使用的ireport版本为iReport-5.6.0打开ireport点击文件-new第一步选择blank4,然后点击Open this Template输入模版名称和存放路径,之后点击下一步,最后点完成点击左侧列表的title,Column Footer,Page Footer,Summary 分别设置其高度为0或者直接点击xml按钮将里面对应的标签的高度设置为0设置detail高度为325,最后如图:接下来点击数据源按钮(report datasources)进入数据源设置界面点击new按钮选择javabeans set datasource点击next为datasource设置名称,点击save按钮,按照这种方式创建ps_bean_item数据源,点击左侧列表report模版右键选择Add Dataset定义数据集名称为bean1,点击下一步选择数据源为ps_bean_info,点击下一步直到完成。

右键继续选择Add Dataset定义数据集名称为bean2,点击下一步选择数据源为ps_bean_Item,点击下一步直到完成。

点击工具-选项-classPath点击Add Folder按钮定位到工程的classes目录下,点击确定选择bean1数据集右键点击edit query选择javabean datasource标签页,在className输入框中输入main.ReportPersonInfo,点击read attributes按钮选择除了class之外的所有属性点击add selected field按钮点击ok设定完毕同样的方式设置bean2为main.ReportPersonItem点击parameters右键添加reportTitle参数并将reportTitle添加到Column header中向detail中添加list和rectangle用于存放人员信息和项目信息将bean1 fields中的patientName拖入到rectangle中将bean2 fields中的itemName也拖入到rectangle中点击人员信息的list,右键edit list dataSource,如下图进行设置点击项目的list,右键edit list dataSource,如下图进行设置选择工具-选项-classpath,分别导入以下三个jar包按住ctrl选择所有输入文本框在最右侧的属性栏里修改pdf属性最后修改字体问仿宋。

Ireport的JRXlsExporter的setParamter参数

Ireport的JRXlsExporter的setParamter参数

JRXlsExporter.setParameter常用参数说明1、net.sf.jasperreports.engine.JRExporterParameter. JASPER_PRINT这个参数是net.sf.jasperreports.engine.JasperPrint的对象,exporter在导出报表前会做检测。

2、net.sf.jasperreports.engine.JRExporterParameter.JASPER_PRINT_LIST这个参数是包含了n个net.sf.jasperreports.engine.JasperPrint对象的java.util.List,exporter在导出报表前会做检测。

3、net.sf.jasperreports.engine.JRExporterParameter.INPUT_STREAM这个参数是net.sf.jasperreports.engine.JasperPrint被序列化对象的输入流,exporter在导出报表前会做检测。

4、net.sf.jasperreports.engine.JRExporterParameter.INPUT_URL这个参数是包含net.sf.jasperreports.engine.JasperPrint被序列化对象的URL,exporter在导出报表前会做检测。

5、net.sf.jasperreports.engine.JRExporterParameter.INPUT_FILE_NAME这个参数是存储了net.sf.jasperreports.engine.JasperPrint被序列化对象的文件路径,exporter在导出报表前会做检测。

注意:以上几个参数不能全部为空6、net.sf.jasperreports.engine.JRExporterParameter.OUTPUT_STRING_BUFFER这个参数是ng.StringBuffer的对象,存储已经产生出的指定格式报表的内容。

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(被选元素根据周围元素的尺寸所移动)FixRelativeToTop(元素保持相对于它所在条目顶部的位置)FixRelativeToBottom(元素保持相对于它所在条目底部的位置)默认值为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 alignmentTop(顶部)Middle(中间)Buttom(底部)默认值为TopHorizotal alignmentLeft(左)Center(中)Right(右)默认值为LeftEvaluation time 表达式计算的时刻(经常用在变量计算页的行数等等)Now (当前的条目被填充时,计算表达式)Report (当报表要结束时,计算表达式)Page (当前页要结束时,计算表达式)Column (当前列要结束时,计算表达式)Group (当指定组的属性发生改变时,计算表达式)默认值为NowEvaluation group 计算组当Evaluation timed为Group时,指定计算表达式时刻的组子报表属性Parameters Map Expression Connection / Datasource Expression Using cacheImage Expression ClassSubreport ExpressionSubreport parameters图表属性组属性Start on a new column是否在新的列开始Reset page number是否在新的页开始Start on a new page是否在新的也开始,并重新计算PAGE_MUMBER Print header on each page 是否在每个新的页上打印组头Min height to start new page 新的也开始的最小高度使组的底部和页底和列底中提供一段间距Group expression 组表达式当该值发生改变时,在报表中产生一个新的组Group header band height 组头条目的高度Group footer band height 组尾条目的高度条目属性Band height 条目高度Split allowed 是否允许分割当条目被拉伸时,是否允许它分页Print When Expression是否当表达式成立时输出表达式成立时输出被选条目默认值为false,一般不要修改这个值。

iReport中文教程

iReport中文教程

iReport中文教程iReport一、介绍iReport是一个能够创建复杂报表的开源项目,它100%使用Java语言编写,是目前全球最为流行的开源报表设计器之一。

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

以下是iReport一些比较突出的功能:•拖拽式,所见即所得的报表编辑器;•多样的向导来简化复杂的报表设计任务;•超过30个排版和格式化工具;•报表可转换为PDF HTML EXCEL FLASH CSV RTF TXT OpenOffice Java2D JRViewer等格式;•支持所有有效的数据源。

如:JDBC,CVS,Hibernate,JavaBean等;•用户自定义数据源;•无限次数的撤消/重做;•集成脚本(scriptlet)支持;•内置图表支持:超过20种的图表支持。

并可扩展;•国际化:集成超过15种语言;•报表模板与报表库样式管理;•源文件的备份;•文档结构浏览器。

二、开始在本章中我们将介绍iReport运行时所需要的环境、如何下载iReport以及如何在我们的系统中安装使用。

2.1、运行环境(Requirements)iReport运行时需要sun java2 SDK 1.5及以上版本,为了能编译我们的报表文件我们需要完整的安装JDK。

2.2、下载(Download)iReport官方网址:/cap3.html。

2.3、运行(Run)将文件下载到本地解压后,您可以直接双击iReport.exe或者iReport.bat来运行程序。

注:在本文中iReport的版本是3.0.0。

三、报表结构在本章中我们将分析一下报表的结构,看一下报表中每一部分的作用是什么,以及在生成报表的时候每一部分将产生什么样的效果。

栏(Bands)报表被垂直分成若干个部分,每一个部分我们叫它“band”。

每一个band都有自己的特性,在报表生成的时候有些会打印一次,有些会打印多次。

如下图。

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 等各式的文件。

JasperReport5.6.1编码及Studio使用

JasperReport5.6.1编码及Studio使用

JasperReport5.6.1 编码及Studio使用目录目录1.JasperReport编码 (1)1.1.加入Jar包 (1)1.2.生成报表传给客户端 (1)1.3.报表另存为多种格式 (2)2.JasperSoft Studio报表设计器使用 (5)2.1.简介 (5)2.1.1.报表生命周期 (5)2.1.2.界面 (6)2.2.基本使用 (7)2.2.1.配置数据连接(数据适配器) (7)2.2.2.创建新报表 (12)2.2.3.设置查询语句 (15)2.2.4.报表各部分组成 (16)2.2.5.制作明细表 (16)2.2.5.1.添加表头 (16)2.2.5.2.添加字段 (18)2.2.5.3.设定PDF字体 (19)2.2.5.4.设定边框 (20)2.2.5.5.设定栏高 (21)2.2.5.6.设置字段域 (22)2.2.6.参数的使用 (23)2.2.6.1.添加参数 (23)2.2.6.2.程序中传递参数 (24)2.2.6.3.报表模板接收参数 (24)2.2.7.自定义变量的使用 (24)2.2.7.1.顺序号 (24)2.2.7.2.小计 (26)2.2.7.3.合计 (28)2.2.7.3.1.表头合计 (28)2.2.7.3.2.表尾合计 (28)2.3.报表设计器进阶 (30)2.3.1.分组报表 (30)2.3.2.图形报表 (33)2.3.3.子报表 (35)2.3.3.1.制作父报表 (35)2.3.3.2.制作子报表 (36)2.3.3.3.子报表自适应行高 (41)1.JasperReport编码下面详细说明一下如何利用JasperReport实现自己系统中的报表功能。

1.1. 加入Jar包首先在工程中加入核心类包。

解压从官网上下载的压缩包,在dist目录中可以找到“jasperreports-5.6.1.jar”和“jasperreports-fonts-5.6.1.jar”,复制到项目WEB-INF/lib下,加入到Eclipse的构建配置中。

iReport使用教程(示例教程)

iReport使用教程(示例教程)

iReport使⽤教程(⽰例教程)在使⽤ireport的过程中,因为各种功能都要百度,但是⼤家使⽤的例⼦⼜千差万别让⼈很苦恼,所以⽤⼀个简单例⼦贯穿的展⽰⼀下ireport的常见功能。

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

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

⽽iReport就是⼀个制作Jasperreport的XML⽂件的可视化开发⼯具。

只是⼀个UI。

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

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

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

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

ireport 5.6教程之饼图制作过程

ireport 5.6教程之饼图制作过程

ireport 5.6教程之饼图制作过程Ireport所需环境:ireport4.0.2,mysql5.1目标:饼图,百分比,PDF中文一.DB如图:数据源配置略.创建SQL语句:select count(id)as id,department from piechart group by department;二.创建饼图一路下一步到key and values的时候填写如下:然后完成.拖动改变下大小后点击preview可以查看预览生成结果如下:三.为饼图添加百分比显示在饼图属性里面:填写如下:{0}{2}说明:{0}为名称{1}为数量{2}为百分比在次预览如图:四.PDF预览中文问题4.0.2中pdf预览中文依然存在问题,默认对静态文本将不会显示中文,依旧悲剧.可以采用原来的办法,既加入itext-asian.jar到classpath中,然后修改pdf font name和pdf encoding的办法来显示中文,但这种做法ireport已经抛弃,这里采用另一种做法.下载truetype字体,我下载的是微软雅黑字体:选择[工具]->[选项]->[ireport]下font卡牌栏,install font,然后选择刚下载的字体文件,下一步如图:然后完成.这时候直接预览pdf的话还是悲剧,还要做最后一步修改.在static text的属性里面修改Font name为雅黑字体.然后预览:设计好报表后,把*.jasper文件拷贝到工程中,可以开始编码了,但是上一篇写的只是设计器中预览出现中文,而程序生成的PDF报表依旧不能显示中文,这篇将会做个补充.先填代码吧:Java代码1.package .gkhb.ireport.demo;2.3.import java.sql.Connection;4.import java.sql.DriverManager;5.import java.sql.SQLException;6.import java.util.HashMap;7.8.import net.sf.jasperreports.engine.JRException;9.import net.sf.jasperreports.engine.JRExporter;10.import net.sf.jasperreports.engine.JRExporterParameter;11.import net.sf.jasperreports.engine.JasperFillManager;12.import net.sf.jasperreports.engine.JasperPrint;13.import net.sf.jasperreports.engine.export.JRPdfExporter;14.15./**16.*导入报表为pdf文件17.*/18.public class ExportDemo{19./**20.*报表模板位置21.*/22.private final static String jasperfile="E:/myeclipse/IreportDemo/WebRoot/WEB-INF/jasperfiles/pieChart.jasper";23.24./**25.*目标文件位置26.*/27.private final static String desc="G:/download/font/pie_chart_demo.pdf";28.29./**30.*register database driver for mysql31.*/32.static{33.try{34.Class.forName("com.mysql.jdbc.Driver");35.}catch(ClassNotFoundException ex){36.ex.printStackTrace();37.}38.}39.40.@SuppressWarnings("unchecked")41.public static void main(String[]args){42.HashMap hm=new HashMap();43.try{44.//Fill the report using an empty data source45.JasperPrint print=JasperFillManager.fillReport(jasperfile,hm,connectionProvider());46.47.//Create a PDF exporter48.JRExporter exporter=new JRPdfExporter();49.//JRExporter exporter=new JRHtmlExporter();50.51.//Configure the exporter(set output file name and print object)52.exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,desc);53.exporter.setParameter(JRExporterParameter.JASPER_PRINT,print);54.55.//Export the PDF file56.exporter.exportReport();57.}catch(JRException e){58. e.printStackTrace();59.System.exit(1);60.}catch(Exception e){61. e.printStackTrace();62.System.exit(1);63.}64.}65.66./**67.*database connection provider68.*@return69.*/70.protected static Connection connectionProvider(){71.Connection connection=null;72.String url="jdbc:mysql://localhost:3306/test";73.String user="root";74.String password="";75.try{76.connection=DriverManager.getConnection(url,user,password);77.}catch(SQLException ex){78.ex.printStackTrace();79.}80.return connection;81.}82.83./*84.*jpeg85.JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport,parameters_header,dataSource);86.out=response.getOutputStream();87.JasperExportManager.exportReportToPdfStream(jasperPrint,out);88.89.if(printType==0)//if pdf stream90.{91.JasperExportManager.exportReportToPdfStream(jasperPrint,out);92.}else{//if jpeg image stream93.int pageIndex=0;94.BufferedImage pageImage=new BufferedImage(jasperPrint.getPageWidth()+1,jasperPrint.getPageHeight()+1,BufferedIma ge.TYPE_INT_RGB);95.JRGraphics2DExporter exporter=new JRGraphics2DExporter();96.exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);97.exporter.setParameter(JRGraphics2DExporterParameter.GRAPHICS_2D,pageImage.getGraphics());98.exporter.setParameter(JRExporterParameter.PAGE_INDEX,new Integer(pageIndex));99.exporter.exportReport();100.ImageIO.write(pageImage,"jpeg",out);101.}102.out.close();103.*/104.}这个时候如果需要PDF生成后显示中文,需要把安装的字体打包成JAR导入classpath中去,步骤如下:进入ireport安装目录下,然后进入:\ireport\fonts文件夹,用将文件夹下所有内容直接打包成zip,修改后缀为jar,加入到项目classpath就OK了,此时应该就能生成pdf中有中文显示了同为比较常用的java报表生成工具,FineReport对饼图的解决方案和实现方法与ireport有所不同,具体实现思路和步骤如下,供ireport使用者借鉴:复合饼图和复合条饼图1.问题描述当饼图中的多个数据点均小于饼图的10%时,便很难辨别扇区,怎样使小扇区在饼图中更清晰可见,这时就可以使用第二绘图区制作复合饼图或者复合条饼图来解决,如下图效果:复合饼图复合条饼图2.实现原理复合饼图和复合条饼图将小扇区从主饼图中分离出来,放在第二绘图区,可设置为饼图或堆积条形图,百分比的大小还可手动设置。

iReport

iReport

使用iReportiReport是用于定义JasperReport报表的可视化工具,JasperReport使用XML来定义一个报表的结构。

一、安装下载地址:/ir_opensource_download.html下载iReport-3.0.0-windows-installer.exe,按提示执行默认安装。

二、基本设置(1)语言iReport提供所谓的中文版本,中英混排,而且没有使用专门的中文字号。

要改成英语,点击菜单中的“Options”-“Settings...”,将“General”面板中的“Language”项设为“English”即可。

(2)编译路径"Options" -> "Settings" -> "Compiler" -> "Default compilation directory" 下选择编译路径,生成的jasper文件将放在此目录。

(3)PDF报表的中文处理需要将中文包iTextAsian.jar加入iReport安装路径的lib文件夹下。

在ireport中将中文的属性设置如下:字体:宋体,PDF name:STSong-Light,PDF Encoding:UniGB-UCS2-H (Chinese Simplified);或者"Format" -> "Styles" -> "New" -> "Text properties" -> "Font" -> "Add/modify report font" 定义一种样式,以后直接选择就可以了。

三、数据源设置将数据库使用的jdbc驱动包复制到iReport安装路径的lib文件夹下。

(1)打开"Data" -> "Connections/DataSources",点击“new”,选择"Database JDBC connection"。

iReport使用配置说明书.

iReport使用配置说明书.
配置数据库连接
点击iReport界面的【Report Datasources】按钮(如下图,如果没有此按钮,选中视图→工具栏→Designer选项,该按钮就会显示)
弹出如下Connections / Datasources窗口,点击【New】按钮,新建一个Oracle数据库连接
弹出如下选择窗口,选择Database JDBC connection选项,点击【Next >】,进入下一步连接配置窗口
点击【下一步】,选择需要在界面上填充的字段,如下图
成功建立后出现如下界面
在左边工作区内右键单击平【Parameters】,新建一个XH的参数,注意:参数名统一大写。
修改SQL查询语句
点击【Edit Query】
SELECT * FROM xj_bk_jbxx Where xh=$P{XH}
在JSP页面调用jasper时,先要指定使用哪个jasper
6
需要循环打印的部分,应该放在Detail中,并且Detail的高度,应该与循环打印的每一行高度相同。如果需要序号的,可以使用Variables自动生成。下图为循环打印示例,图中红框中部分为Detail循环打印部分,其高度必须与每一循环行的高度相同。
7
子报表为Subreport,每一个子报表必须单独占有一个Detail,不可跨band;使用子报表时,首先创建一个子报表,然后在父报表上添加一个子报表组件Subreport(从组件面板拖放到相应的Detail中),拖放以后会弹出连接子报表的窗口,如下图,选择之前创建的子报表后,点击【完成】按钮,完成子报表的引入。
response.setContentType("application/pdf");
OutputStream output = response.getOutputStream();

Jasper Report用户手册

Jasper Report用户手册

Jasper Report用户手册version1.0作者:薛笛EMail:jxuedi@严正声明:本来我在以前把JasperReport1.0的用户文档由中文译成了英文,花了两周多时间写了几万字,并把它贴到了CSDN的Blog上,并凡是要翻译完的PDF文档的朋友我都尽量给邮过去。

但是最近我发现问我要文档的人总管我叫“良子大哥”,我开始还不明所以,后来一查才知道CSDN上有个叫良子的人把我翻译的东西整理了一下,调整了一下格式变成了他的作品,上面压根就没提我,但是里面的注明的索要文档PDF版的E-Mail (jxuedi@)却是还是我的—所以别人还是问我要PDF文档!!这令我十分不爽。

本来嘛,我想公开大家看是件好事,但你不能连个转载标志也不写啊!??这行为不是明抢吗,做人不能这样啊?但是今天我终于想通了,我好歹也念过这么多年书,不能和他一般见识,最终又重新把它贴出来,不过还是希望不要有人再这么做。

Jasper Report用户手册 (i)version1.0. i1 简介 (1)2 API概览 (2)Class net.sf.jasper.engine.design.JasperDesign. 2Class net.sf.jasper.engine.JasperReport4Class net.sf.jasper.engine.JasperCompileManager4Class net.sf.jasper.engine.JasperPrint4Interface net.sf.jasper.engine.JRDataSource. 4Class net.sf.jasper.engine.JRResultSetDataSource. 5Class net.sf.jasper.engine.data.JRTableModelDataSource. 5Class net.sf.jasper.engine.JREmptyDataSource. 5Class net.sf.jasper.engine.JasperFillManager5Class net.sf.jasper.engine.JRAbstractScriptlet6Class net.sf.jasper.engine.JRDefaultScriptlet6Class net.sf.jasper.engine.JasperPrintManager6Class net.sf.jasper.engine.JasperExportManager7Class net.sf.jasper.engine.JasperRunManager7Class net.sf.jasper.view.JRV iewer7Class net.sf.jasper.view.JasperV iewer7Class net.sf.jasper.view.JasperDesignViewer7Class net.sf.jasper.engine.util.JRLoader73 主要的任务和过程 (8)3.1 XML解析 (8)3.2 编译报表设计(Report Designs)93.3 Report Design 预览 (12)3.4报表装填(Filling Report) (13)3.5 查看报表(V iewing Reports) (15)3.6 打印报表 (15)3.7 导出报表 (16)3.8 对象的载入和保存 (16)4 报表设计(Report Designs) (17)4.1 DTD Reference. 174.2 XML 编码 (18)4.3 报表属性 (19)Report Name. 19Column Count(列数) (20)Print Order(打印顺序) (20)Page Size(页面大小) (21)Page Orientation(默认设置为Portrait) (21)Page Margins(页边距) (21)Empty Data Source Behavior22Scriptlet Class225 报表数据(Report Date) (23)5.1 表达式(expressions) (23)5.2 参数(Parameters) (24)参数名 (25)参数类型 (25)Prompting for Parameter values26参数的默认值(parameter default value) (26)5.2.1 内置的报表参数 (27)5.3 Data Source(数据源) (28)5.4 报表查询(Report Query) (30)5.5 字段(Field) (32)字段名(Field Name) (33)字段类型(Field Class) (34)字段描述(Field Description) (34)5.6 变量(V ariables) (35)变量名(V ariable Name) (35)变量类型(V ariable Class) (35)重置类型(Reset Type) (36)Reset Group. 365.6.1 运算(Calculations) (36)5.6.2 内置的报表变量(Build-in Report V ariables) (39)6 Report Sections416.1 Main Report Sections426.2 Data Grouping. 43Group Name. 44Group Header44Group Footer447 Scriptlets458 Report Elements46Absolute Position. 46Relative Position. 47Element Size. 47Element Color478.1 Text Elements518.1.1 Fonts and Unicode Support518.1.2 Static Texts558.1.3 Text Fields568.2 Graphic Elements588.2.1 Lines598.2.2 Rectangles608.2.3 Images608.2.4 Charts and Graphics628.3 Hyperlinks638.4 Element Groups649 Subreports659.1 Subreport Parameters679.2 Subreport Data Source. 6810 Advanced JasperReports6810.1 XML Report Designs Loading and Writing. 6810.2 Implementing Data Sources6910.3 Customizing Viewers6910.4 Exporting to New Output Formats701 简介JasperReport是一个强大、灵活的报表生成工具,能够展示丰富的页面内容,并将之转换成PDF,HTML,或者XML格式。

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报表设计器使用说明

【关键字】设计iReport报表设计器使用说明目录✧JavaBean的一个字段作为数据源........................................... 错误!未定义书签。

5.XML数据源............................................................................. 错误!未定义书签。

✧字段的注册............................................................................... 错误!未定义书签。

6.XML和子报表......................................................................... 错误!未定义书签。

7.CSV数据源.............................................................................. 错误!未定义书签。

✧字段的注册............................................................................... 错误!未定义书签。

8.JREmptyDataSource ................................................................. 错误!未定义书签。

✧实现一个新的JRDataSource................................................... 错误!未定义书签。

✧用iReport实现个性化的JRDataSource................................. 错误!未定义书签。

iReport开发使用说明

iReport开发使用说明

iReport开发使用说明本文一下主要就ireport模板生成使用char组件和table的生成过程和开发过程中碰到的问题进行说明(以Javabean为数据源,以sql为数据源的网上资料很多这里不做说明),使用的ireport的版本为5.6.一、使用char组件完成柱状图和饼状图1.先看效果图:效果图中有柱状图一个和饼状图一个,因此使用ireport需要定义两个数据源,整个报表如下所示:2.新建文件:3.设置文件名和生成文件保存路径4.使用new自定义一个javabean数据源单击“下一步”按钮,直到“完成”:出现以下界面,文件生成:5.文件相关参数设置讲图中红色圈中的部分宽度设置为0,只留下title和Summary部分,柱状图在Summary中进行生成,重新设置该部分高度,注意:图形只能在summary区域中生成,否则导出的报表会出现重复。

新的区域图如下:6.Classpath设置点击菜单栏中“工具”—“选项”显示一下面板,打开‘Classpath’选项卡,‘Add Folder’,把自己eclipse中项目所在的classpath选择上去,设置为默认,如下图所示,说明已经Classpath已经配置好。

7.添加数据源参数ds_pie和ds_serial参数默认类型是string类型,按照下图所示将两个数据源类型修改成net.sf.jasperreports.engine.JRDataSource类型。

8.配置javabean右键“report---“Add Dataset”,按照以下图示添加DataSet:在Dataset “ds_pie”上右键点击“Edit Query”,选中JavaBean Datasource 选项卡,按照下图所示配置bean信息:在使用Chart组件时,图中的name和score分别作为key和value出现,Chart组件要求value值必须为数值类型,因此将score设置为float类型。

ireport 5.6教程之参数(Parameters)

ireport 5.6教程之参数(Parameters)

ireport 5.6教程之参数(Parameters) Parameters通常是用来在打印的时候从程序里传值到报表里。

也就是说parameters通常的是起参数传递的作用。

他们可以被用在一些特定的场合(比如应用中SQL查询的条件),如report中任何一个需要从外部传入的变量等(如一个Image对象所包括的char或报表title的字符串)。

和使用Fields一样,parameters也需要在创建的时候定义它的数据类型。

parameters的数据类型是标准的java的Object。

在ireport中,Parameters的机制是允许用户通过应用程序传递参数致报表当中。

在jasperreort中的某个对象中的expression可以通过下面的语法来访问一个当前ireport中存在的parameter:$P{parameter name}。

如果应用程序没有为报表中定义的parameter赋值,那么parameter将会取我们在定义它的时候设置的default value的值。

parameters是一个Java Object,所以如果它的类型是Object类型,我们在其default value里写下面的表达式就是错误的:0.123你必须要创建一个Object,如:New Double(0.123)这种写法就是正确的。

在查询中使用ParametersParameters可以用来做SQL查询的条件参数的传递。

如果你想根据部门编号(dept_id)得到客户的详细信息(设计的时候我们是不知道这个部门编号的具体值是多少的).此时我们可以这样组织查询语句:select*from employee where dept_id=$P{deptId}此时SQL查询引擎将会采用PreparedStatement来处理传入的deptId值以此作为查询条件参数。

如果你想直接通过parameter值来作为SQL语句的一部分,那么你可以使用下面的特殊语法:$P!{parameter name}。

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

ireport 5.6教程之参数(Parameters) Parameters通常是用来在打印的时候从程序里传值到报表里。

也就是说parameters通常的是起参数传递的作用。

他们可以被用在一些特定的场合(比如应用中SQL查询的条件),如report中任何一个需要从外部传入的变量等(如一个Image对象所包括的char或报表title的字符串)。

和使用Fields一样,parameters也需要在创建的时候定义它的数据类型。

parameters的数据类型是标准的java的Object。

在ireport中,Parameters的机制是允许用户通过应用程序传递参数致报表当中。

在jasperreort中的某个对象中的expression可以通过下面的语法来访问一个当前ireport中存在的parameter:
$P{parameter name}。

如果应用程序没有为报表中定义的parameter赋值,那么parameter将会取我们在定义它的时候设置的default value的值。

parameters是一个Java Object,所以如果它的类型是Object类型,我们在其default value里写下面的表达式就是错误的:
0.123
你必须要创建一个Object,如:
New Double(0.123)
这种写法就是正确的。

在查询中使用Parameters
Parameters可以用来做SQL查询的条件参数的传递。

如果你想根据部门编号(dept_id)得到客户的详细信息(设计的时候我们是不知道这个部门编号的具体值是多少的).此时我们可以这样组织查询语句:
select*from employee where dept_id=$P{deptId}
此时SQL查询引擎将会采用PreparedStatement来处理传入的deptId值以此作为查询条件参数。

如果你想直接通过parameter值来作为SQL语句的一部分,那么你可以使用下面的特殊语法:$P!{parameter name}。

这种写法允许你在查询时用parameter的值来替换parameter name。

例如,如果我们有一个参数名为MyWhere其值为:where dept_id=D11,查询写法如下:
Select*from employee$P!{MyWhere}
查询时实际提交的字符串是:
Select*from employee where dept_id=D11
在程序里使用Parameters
在应用程序里,如果想把某个值传递到我们的报表中parameters时,我们可以把相关的值放入一个扩展java.util.Map接口类里,然后传入到ireport里。

如下面的代码:
...
Map hm=new HashMap();
...
JasperPrint print=
JasperFillManager.fillReport(fileName,hm,new
JREmptyDataSource());
fillReport是一个关键的方法,它允许你通过一个文件名,一个参数集来传递到我们要调用的报表当中。

例-如通过下面的处理方法我们可以让一个处部的传入值作为我们报表的title。

下面的是一个例子:
a).声明一个parameter.这个parameter是ng.String类型,名字为:name_report:
b).将这个parameter拖到page中的title band.修改上面的程序代码如下:
HashMap hm=new HashMap();
hm.put(“name_report”,”report title”);
...
JasperPrint print=
JasperFillManager.fillReport(fileName,hm,
new JREmptyDataSource());
运行时效果如下:
一般情况下,我们不需要为报表中的每一个parameters传递一个值,除非某一个parameter一定要从外部程序传入时我们才需为一个parameter设
置一个值。

如果一个parameter外部门程序没有为其赋值那么ireport将使用Default Value Expression来对一个parameter进行初始化,如果连Default Value Expression没有设置那么它的值就是null。

事实上,对于一个parameters我们不仅仅可以传递一个
String,Integer,Boolean等java中小的对象,同时我们还可以利用parameters 来传递一些足够大足够复杂的对象,比如一个图像(java.awt.Image),或者通过一个parameters来为一个为子报表提供的datasource连接等。

在用Map类型传递参数时我们要注意传递的参数要与report里的parameters类型保持一致,否则会抛出ClassCastException。

ireport内嵌的Parameters:
ireport提供了一些内建的parameters,这些parameters对于用户来说是只读的。

内嵌的parameters列表如下:
参数名说明
REPORT_PARAM ETERS_MAP
它是一个java.util.Map类型的对象,可以通过它来传给填充报表去填充报表里所有的parameters,在这个参数里还包含用户定义的parameters.
REPORT_CONNE CTION 一个JDBC的Connection参数,报表可以根据传入的JDBC Connection来获到相应的数据
REPORT_DATAS OURCE 为报表中的Connection提供一个DataSource。

外部传入的时候类型也要是DataSource类型
REPORT_SCRIPT
LET 报表生成时使用的Scriptlet实例,如果没有指定ScriptLet,那么这个parameters将使用
net.sf.jasperreports.engine.
JRDefaultScriptlet.
IS_IGNORE_PAGI NATION
通过这个参数你可以控制分页功能是打开还是关闭。

默认情况下,分页是打开的。

但是如果导出为HTML 或EXCEL时不进行分页处理。

REPORT_LOCALE 它被用来设置报表所处的地区。

如果没有提供地区,那么将采用系统默认的地区。

REPORT_TIME_Z
ONE
设置报表的时区,如果没提供的话采用系统默认的。

REPORT_RESOU RCE_BOUNDLE 为报表指定要加载的资源文件,在国际化一章中介绍了如何使用资源文件来构建报表。

同为比较常用的java报表生成工具,FineReport对参数的解读和使用方法与ireport有所不同,具体实现思路和步骤如下,供ireport使用者借鉴:
在大多数情况下,我们并不需要报表把数据库中所有的数据都呈现出来,而是要根据一些条件来过滤出我们想要的数据,这就是参数查询。

FineReport报表中就是使用参数来动态的过滤数据的,实现用户和数据的实时交互,如下图:
注:鼠标移至参数界面的中间区域会出现收缩按钮,折叠或展开参数查询界面。

如何实现参数查询
几乎所有的统计报表都会有类似上图的统计条件,传统的做法是使用如ext、html等编程实现,工作量大且维护成本高。

Finereport报表只需要通过参数的定义,添加参数控件绑定数据、参数过滤和参数面板样式三个步骤便可以轻松实现参数查询,零代码,维护简单。

实现步骤
FR报表提供了参数界面的概念,让用户快速制作出参数表单界面,制作参数查询界面的步骤如下:
参数定义:设置参数名称,添加参数,根据实际情况的不同添加不同种类的参数,详细请查看参数的种类与区别。

添加控件绑定数据:FineReport参数查询,是在参数面板中添加控件,使控件名字与参数名称一样,通过该控件将其控件值传递给参数,实现动态修改参数值得效果,可为控件绑定数据,直接选择;
参数面板样式设定:设置参数界面中控件的位置,参数面板的位置,背景等等。

参数应用实例之URL给参数传递中文值
虽然我们建议模板名称、参数变量名称都用英文,但是对于中国式的复杂报表,参数肯定有中文情况。

使用ie浏览器通过url给参数赋值为中文时,会发现中文值会出现乱码,如下图所示
问题原因
因为浏览器编码与服务器编码不一致,导致中文url输入会产生乱码,无法被正常识别。

解决方案
通过url给参数赋值一般应用在报表已经集成到项目中,希望点击某个链接将某个值传递给报表;而在浏览器中直接给参数赋值呢,一般是做测试使用的,此时可以将浏览器换成火狐或者谷歌。

集成到项目中,可以使用FR.cjkEncode()方法,如点击某个链接给col赋值为地区,此时可以使用如下方法:
1.window.location="http://localhost:8080/WebReport/Re
portServer?reportlet=doc/Parameter/DynamicCol/Dyna
micCol.cpt&col="+FR.cjkEncode("中文名称")。

相关文档
最新文档