ireport设计子报表的实现

合集下载

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组件list用法

ireport组件list用法

iReport组件list的用法1.介绍在iR ep ort中,l is t是一种非常常用的组件,用来显示重复数据集。

它可以在报表中多次循环显示相同的元素,比如表格、子报表等。

本文将介绍iR ep or t中lis t组件的基本用法和常见技巧。

2.创建一个l i s t要创建一个l is t组件,可以按照以下步骤进行操作:1.打开iR ep or t,并创建一个新的报表模板。

2.在报表模板的工具箱中,找到li st组件并拖动到报表中。

3.设置li st的数据源,可以是一个S QL查询、Ja va Be an集合等。

4.在l is t组件中添加需要显示的元素,比如文本框、图片等。

3.设置lis t的属性l i st组件有一些重要的属性需要设置,以满足不同的需求。

以下是一些常用属性的介绍:D a t a S o u r c eE x p re ss i o n-:指定l is t的数据源表达式,可以是一个S Q L查询、Ja va Be an集合的字段等。

C o n n e c t i o n E x p re ss i o n-:指定连接表达式,用于在子报表或者嵌入式表格中引用其他数据源。

P r i n t W h e n E x p r es si o n-:设置一个表达式,用于控制l ist是否需要打印。

如果表达式的值为f al se,则li s t不会显示。

S t r e t c h T y p e-:设置l is t在报表中的自动拉伸方式,包括“R el at iv eT oB an dH e ig ht”和“R el at i ve To Ta ll es tO bje c t”两种选项。

E l e m e n t S t r e t c hT yp e-:设置l is t中的元素的自动拉伸方式,包括“R el at iv eT oB an dH e ig ht”和“R el at i ve To Ta ll es tO bje c t”等选项。

ireport制作报表

ireport制作报表

Ireport设计报表一、必须使用的jar包 (2)二、field的名称 (2)三、几个常用按键 (2)四、增加字段 (3)五、设计一个简单报表 (3)1、 (3)2、设置报表字段 (4)3、修改字段框数据类型 (4)4、预览效果 (5)5、添加边框 (5)6、添加边框后的预览效果 (6)7、设置编译存放文件路径 (6)8、定义类 (7)9、设置数据 (7)10、把数据加入list (7)11、调用jasper函数 (7)12、在浏览器在输出报表数据 (8)13、运行结果 (8)14、调整detail区的宽度 (8)15、调整后的显示效果 (8)16、利用变量给报表添加页数 (9)17、显示效果 (9)18、在报表中使用参数 (10)19、给参数设置值 (10)20、添加参数后的显示效果 (10)六、iReport三种数据类型 (11)七、填充报表数据的一个函数 (11)八、几个重要的默认变量 (11)九、处理数值 (11)1. 结果显示为NULL: (11)2. 处理日期格式 (11)3. 要求精度的数据 (11)4. 用科学计数法的E (11)十、请写出以下几题 (12)一、必须使用的jar包iReport.jar(iReport使用)itext-1.3.1.jar(iReport使用)jasperreports-1.3.3.jar(共用)commons-beanutils-1.7.jar(jasperreport用) iTextAsian.jar(支持亚洲字符可选) 二、field的名称三、几个常用按键四、增加字段1、2、设置报表字段3、修改字段框数据类型4、预览效果5、添加边框6、添加边框后的预览效果7、设置编译存放文件路径8、定义类public class Person{private String name;private String sex;private int age;………………. //getXXX(),setXXX()}9、设置数据Person ps1=new Person();ps1.setName("董志伟");ps1.setSex("男");ps1.setAge(23);Person ps2=new Person();ps2.setName("赵宇阳");ps2.setSex("男");ps2.setAge(22);10、把数据加入listList list=new ArrayList(); //存放报表数据Map parameters = new HashMap(); //传递报表参数数据list.add(ps1);list.add(ps2);11、调用jasper函数JasperPrint jasperPrint =JasperFillManager.fillReport("E:\\eclipse\\iReport-1.3.3\\report\\最终结果\\编译结果\\firstReport.jasper",parameters, new JRBeanCollectionDataSource(list));12、在浏览器在输出报表数据JRHtmlExporter exporter = new JRHtmlExporter();exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);exporter.exportReport();out.flush();13、运行结果14、调整detail区的宽度15、调整后的显示效果16、利用变量给报表添加页数17、显示效果18、在报表中使用参数19、给参数设置值session.setAttribute("userName","董志伟");Map parameters = new HashMap();parameters.put("userName",session.getAttribute("userName").toString());20、添加参数后的显示效果六、iReport三种数据类型1.字段(field):(动态)接收java数据类型调用方式:$F{fieldName}2.参数(parameter):以键---值形式接收java数据类型调用方式:$P{paramertName}3.变量(variable):内部设定数值调用方式:$V{variableName}七、填充报表数据的一个函数JasperPrint jasperPrint =JasperFillManager.fillReport(jasper文件,Map对象, new JRBeanCollectionDataSource(list));八、几个重要的默认变量·$V{REPORT_COUNT}: 当前报表记录的总条数·$V{PAGE_NUMBER} :当前报表页码·$V{COLUMN_COUNT} :当前页当前列序号·$V{PAGE_COUNT}: 当前页面中记录的条数九、处理数值1. 结果显示为NULL:处理方式:1). 把数据填充进list前进行处理2). 用条件表达式处理iReport的字段$F{name}==null ? ”---”: $F{name}2. 处理日期格式处理方式:1). 把数据填充进list前进行处理2). 设置iReport字段为new java.text.SimpleDateFormat(“yyyy-MM-dd”).format($F{date})//月一定要用大写M,小写则代表分钟3. 要求精度的数据处理方式:1). 把数据填充进list前进行处理2). 设置iReport字段:new BigDecimal($F{num}).setScale(2,BigDecimal.ROUND_HALF_UP)4. 用科学计数法的E处理方式:1). 把数据填充进list前进行处理DecimalFormat dfs = new DecimalFormat(“.00");//#dfs.format(num);2).设置iReport字段:New BigDecimal(2.2343434E7).setScale(2,BigDecimal.ROUND_HALF_UP)或:new DecimalFormat(".00").format(234342232)十、请写出以下几题1. iRport的三种数据类型。

iReport中父报表给子报表传参数

iReport中父报表给子报表传参数

iReport 中父报表给子报表传参数1.创建子报表:
放置子报表空间到需显示子报表内容的位置
自动弹出子报表向导,按照向导一步一步配置子报表:
选择子报表来源:
点击下一步:
选择一个新建子报表模板:
点击下一步:
指定数据源和查询语句:
点击下一步:选择输出字段
点击下一步:
分组
点击下一步:
设置子报表保存位置信息:
点击下一步:
配置连接数据源的方式:
完成子报表创建。

2.添加子表接受父表传值的参数为子报表添加参数并重命名
3.父报表传参数给子报表:
首先要确保父报表中有查询出与子报表参数对应的字段(此字段同报表参数可以不同名)
父表中选中SubReport控件查看属性并在parameters中添加参数:
编辑父表子、表参数对应关系:
检查并修改父表中用于传参的字段的数据类型和子表用于接受父表传值的参数的数据类型使得二者一致。

父表:
子表:
到此传参完成。

总结:传参过程中两点需要注意:
1.确保子表中的参数与父表中传值对应关系正确(同时注意子表参数的大小写);
2.子表参数与父表传值的数据类型一致。

ireport 循环子表间隔

ireport 循环子表间隔

iReport是一个用于生成和发布丰富多样报表的工具,它的循环子表功能能够让用户在报表中展示包含重复数据的子表格,从而使报表数据更加清晰和直观。

在使用iReport进行报表设计时,循环子表的间隔是一个重要的功能,它可以帮助用户控制子表之间的间距和排列,让报表呈现更加美观和易读的效果。

循环子表间隔的作用是什么?在很多情况下,报表中可能会包含多个子表格,这些子表格中的数据可能是重复的或者相关联的。

为了让报表的结构更加清晰和易读,循环子表间隔可以帮助用户在生成报表时控制子表之间的间隔和排列方式。

通过设置循环子表间隔,用户可以让子表之间有适当的间距,避免数据重叠或者排版混乱的情况发生,从而提高报表的可读性和美观度。

如何在iReport中设置循环子表间隔?在iReport中设置循环子表间隔需要用户按照以下步骤进行操作:打开iReport软件,并打开需要设计的报表模板。

找到包含子表格的部分,通常这些部分会使用子报表元素来展示重复数据。

选择子表格元素,右键点击并选择“Properties”选项,进入子表格的属性设置界面。

在属性设置界面中,找到“Print When Det本人l Overflows”选项,勾选该选项并在文本框中输入合适的条件表达式。

根据具体的需求,设置好子表格的间隔和排列方式,可以选择垂直排列或者水平排列,并且可以设置子表格之间的间距大小。

点击“OK”保存设置,预览报表并进行调整。

通过以上步骤,用户可以在iReport中轻松地设置子表格的间隔和排列方式,从而实现报表的美观和易读。

循环子表间隔的注意事项在设置循环子表间隔时,用户需要考虑一些注意事项,以确保报表的效果达到预期:合理的间隔大小:子表格间隔的大小应该根据具体的报表内容和排版要求来确定,不能过大或者过小,应该能够让子表格之间有适当的间距并更加整齐美观。

避免重叠和错位:设置子表格的间隔时要注意避免子表格之间的重叠和错位,特别是在打印报表时,排版更加重要。

ireport 创建子报表

ireport 创建子报表

下面我们以创建一个如下图所示的例子1、在同一个工程下面新建四个报表并命名(metting_report_1.jrxml、metting_report_2.jrxml、metting_report_3.jrxml、metting_report_4.jrxml)为页面如下所示:2、在metting_report_1.jrxml建表头和主题如图:3、在metting_report_1.jrxml的detail 里面加入在第一列单循环的质的例如周一至周五、日期和周一样都为短循环,操作如下:在data的报表查询输入:Select TO_CHAR (t.d+4, 'YYYY-MM-DD') as sdate,TO_CHAR (t.d+4, 'day') as WeeksFROM (Select TRUNC (to_date($P{sdate},'YYYY-MM-DD'), 'WW') + ROWNUM -1 AS d FROM t_sys_userWhere ROWNUM < $P{showday}) tWhere TO_CHAR (t.d, 'WW') = TO_CHAR (to_date($P{sdate},'YYYY-MM-DD'), 'WW') order by sdate结果为:$P{sdate} 为一周开始时间(格式为:2009-07-01)$P{showday}为显示多少天(7)这些都可以从外面参数传递过来4、通过图第一个图可以看出上午下午值得是变化的所有我们把上午或者下午作为一个子报表,此处就可以用子报表点击:然后在时间下面点击,并调整其宽度和高度,右键属性:1处是连接子报表的文件名,这里可以指定为绝对路径例如:C:\metting_report2.jasper,2处和子报表传递的参数名,点击3处可以添加,参数用P动态数值用F。

ireport pattern 详解

ireport pattern 详解

ireport pattern详解一、ireport pattern的定义1.1 什么是ireport pattern在软件开发中,ireport pattern是一种设计模式,它可以帮助开发者在报表生成过程中提高效率和可维护性。

它包括了一系列的最佳实践和模板,使得开发者能够更加轻松地设计、开发和管理报表。

1.2 ireport pattern的作用ireport pattern的主要作用是简化报表开发流程,提高报表生成效率,并且减少在开发过程中出现的问题。

通过使用ireport pattern,开发者可以减少重复劳动,提高代码的复用性,同时也使得报表在多个不同项目中具有一致的风格和规范。

二、ireport pattern的核心概念2.1 分层结构ireport pattern通常采用分层结构来组织报表的设计和开发。

这种分层结构包括了数据访问层、业务逻辑层和展示层。

在这种结构下,各个层次之间的耦合性降低,使得报表的各个部分更加易于维护和替换。

2.2 模块化设计模块化设计是ireport pattern的另一个核心概念。

通过将一个报表拆分成多个模块,每个模块负责不同的功能,可以使得报表的设计更加灵活和可扩展。

模块化设计也使得在团队开发中更加容易分工合作,每个人可以专注于自己负责的模块,提高开发效率。

2.3 配置与代码分离在ireport pattern中,通常会将报表的配置和代码进行分离。

这样做的好处是可以使得报表的配置更加灵活和易于修改,而不用修改代码。

另外,也可以使得报表的配置得到更好的版本控制,减少在修改配置时出现的问题。

三、ireport pattern的实际应用3.1 ireport pattern的开发流程使用ireport pattern进行报表开发通常包括以下几个步骤:(1)需求调研:了解用户的需求,明确报表的展示内容和格式;(2)数据分析:分析报表所需的数据源和数据结构;(3)模块设计:将报表拆分成多个模块,设计每个模块的功能和接口;(4)开发实现:按照模块设计,分别开发各个模块的功能;(5)集成测试:对整个报表进行集成测试,确保各个模块能够协同工作;(6)优化和维护:根据用户和测试反馈,对报表进行优化和维护。

iReportjasperReports生成表格

iReportjasperReports生成表格

iReportjasperReports⽣成表格使⽤iReport⽣成表格⼀环境:iReport-5.6.0 JDK71.注意,iReport的最新版本⽬前还不⽀持JDK8,如果项⽬⼯程已经配置了JDK8,那也不⽤去修改环境变量和⼯程的配置,只要修改iReport的配置⽂件即可。

找到etc路径下的ireport.conf,将以下⼀⾏:#jdkhome="/path/to/jdk"改为jdk7的路径,如:jdkhome="C:\Program Files\Java\jdk1.7.0_67"这样iReport就可以顺利启动了。

2.打开iReport有⼏个⽐较常⽤的⼯具栏:Window-->Palette 和 Properties,这两个可以⽤来处理元素和样式,是常⽤的两个⼯具栏⼆使⽤过程1. 先介绍⼀下最终希望⽣成的效果:2. 看⼀下java端的代码:最终iReport要⽤到的数据是List<OceanRatesEmailMessage>这样的lists,每个list包含⼀个title以及对应的label和valuepublic class OceanRatesEmailMessage {private String title; //对应A. Backendground Information这样的titleprivate List<OceanRatesDetails> oceanRatesDetails;......}public class OceanRatesDetails {private String label; //labelprivate Object value; //valueprivate Integer combineColumns; //控制value是分成⼀⾏还是两⾏private boolean needHighLight; //控制最后⼀⾏的颜⾊.......}3.添加数据源如果通过JavaBeans set data source的⽅式来添加数据源,那么就需要提供⼀个类,这个即类名即图⼆的Name参数,这个类的路径即图⼆的Factory class参数,这个类⾥必须要有⼀个静态⽅法,提供所有的数据,这个⽅法名即The static method....参数。

IReport报表制作概述最新版模板

IReport报表制作概述最新版模板

IReport制作报表启动iReport后, 点击菜单”档案”–“开启新档”(见图1), 弹出窗口“Report properties”。

图1在窗口“Report properties”中可定义报表的名称、尺寸、定位及报表边界值等属性(见图2)。

“定位”下拉列表中包含两个选项“Portrait”和“Landscape”, 其中Portrait代表纵向报表,Landscape代表横向报表), 下面以制作”归档文件目录”为例子来介绍如何制作报表。

图2定义报表名称及定位等属性后, 点击“OK”按钮系统弹出报表设计的主窗体。

在窗体的左下方点击右键, 弹出菜单“栏的属性”(见图3)。

图3选择该菜单, 在弹出窗体中设置各个栏的高度(见图4)。

设置方法如下: 选中某个栏后输入高度值, 点击“Apply”按钮。

对不需要显示的栏设置其高度值为“0”即可,注意: 档案的报表最常用的栏目为: columnHeader、detail、columnFooter。

图4在上方选取”静态字段”工具(T图标),再在”columnHeader”栏中画出来(见图5), 以同样的方法增加其它所有静态的文字。

columnHeader栏里面的图表、文字一页只会显示一次,Detail栏中的会根据条件循环显示,直到页面不够画才换一页显示。

图5(1)右键单击画出的静态字段框选”属性”, 在弹出的对话框中(见图6)设置其它属性:Font选项卡中设置字体的相关属性。

(2)在Font Name 选字体;(3)Size选字体大小;PDF Font Name 设置或选择相关的字段 , 注意如果在Font Name选字体名字的不是宋体, 而是其它字体时, 需要通过(4)L ine Spacing中设置行间距;(5)A lign和Vertical Align分别代表静态框中的文字的水平对齐和纵向对齐;(6)R otation中设置文字的显示方向;(7)复选框“PDF Embedded”勾上, PDF Coding 选UniGB-UCS2-H (Chinese Simplified), 如果字体选择不是宋体时需要选择Identity-H (Unicode with horizontal writing) ;(8)Static Text中可以更改静态文字(双击框也可以更改); (9)Border中是设置该属性的边框。

使用iReport制作报表

使用iReport制作报表

iReport制作报表作者:㊣lover ●iReport介绍iReport是为JasperReports设计的强大的,直观的,易于使用的可视化报表设计器,用Visual J++为Win32平台编写。

iReport允许用户可视化地编辑XML JasperDesign文件,可以和其它数据库通过JDBC通信。

补充:XML JasperDesign文件就是XML格式的报表模板文件(后缀名:.jrxml)。

●安装和设置1.安装JDK,配置环境变量,下载iReport(最新版本0.5.2)(略)2.配置iReport第一次进入系统是英文环境,可以通过【Tools】-【Options】开启配置iReport系统的基本信息对话框。

在“Language”选项里面选择你需要的界面语言,比如“中文(中国)”。

点击【Apply】按钮,系统既把整个界面中文化。

注:中文化的界面比较难看,建议用英文界面。

在配置iReport系统的基本信息对话框中选择【Compiler】Label,之后决定你的报表输出路径,可以把“Use the reports directory for compiles”选择打勾,这样报表的jrxml文件和jasper文件就放置同一文件夹。

(在新建报表时会要求你把jrxml文件保存到指定的文件夹)3.配置JDBC数据源开发报表,肯定要从数据库中取得数据,那么首先得连接数据库,使得iReport可以和JDBC进行通信。

加载数据库对应的JDBC驱动包:通过【Tools】-【Classpath】开启配置iReport系统的ClassPath信息框。

点击“Add JAR/Folder..”按钮,将驱动包加载进来。

比如DB2 7.2数据库,将db2java.zip加到Classpath,然后点击“Save classpath”保存一下配置的信息。

配置Connection/Datasource:通过【Datasource】-【Connection/Datasource】开启配置iReport系统的数据源信息框。

IReport教程

IReport教程

Ireport 速成
第一步:建立数据源
导入数据连接驱动包选择ClassPath:导入相应数据库的驱动jar包
命名新建文档:
模板全局图:
需求模板样式:
去除不需要的区域,设置其hight为0,点击‘Apply’:
最后设置完成后图为:
title为整个文件的title,pageHeader为每一页的header,pageFooter为每一页的footer
下一步:
在Data里选择‘报表查询’,写入SQL语句:
设置正确之后,查询出的字段会显示出来:
设置好的全局图:
定义字段属性,要保证文本框类型和查询出的字段类型一致:
建立子报表:
在主报表上设置子报表变量,为jasperReport型:
在红色圈处设置,需要注意类型
子报表parameter设置
之后建立辅助实现页面JSP完成Excel报表的制作!。

iReport子报表(SubReport)

iReport子报表(SubReport)

iReport子报表(SubReport) 立方开源商业智能SubReport是ireport提供的高级功能,通过SubReport我们可以创建复杂的报表。

通过SubReport我们可以创建一个包含若干个子报表的报表。

创建一个包含子报表的报表我们需要三个对象:一个jasper文件,一个包含参数map(当然可以为空)和一个DataSource(数据源,或者是一个JDBC的Connection)。

在本章中我们将解释如何通过这三个对象创建一个SubReport并实现在子报表中数据过滤显示的目的。

9.1 创建一个子报表(create a SubReport)一个SubReport是一个真正的包含它自己xml文件并且是一个已经编译好的jasper文件。

创建一个SubReport就是创建一个普通的报表文件,创建过程中唯一需要注意的是设置SubReport的宽度、高度及一些不需要显示的band,一般情况下对于不显示的band我们把它们的高度都设置为0。

在设置子报表的宽度时我们应该考虑到它在父报表中显示时的效果,然后针对这一特性有针对性的去设置。

在父报表中我们要添加一个子报表可以通过iReport中的SubReport工具来实现。

子报表的形状和一个距形类似,我们可以调整SubReport的尺寸和位置以控制子报表的显示。

将一个子报表链接到父报表中需要做三件事情:获得SubReport所对应的jasper报表对象、如何为它提供数据及如何为子报表的parameters设置具体的值。

所有这些信息的定义我们可以通过SubReport properties窗口来实现。

图9.1图9.29.2 传递参数(Passage of the parameters)当我们在应用程序里通过fillReport方法来生成一个报表的时候,我们会提供一个包含参数值的Map一起传递到报表中,包含参数的Map对象是由报表引擎直接管理的。

在子报表属性窗口的里的“SubReport”标签里的“Parameters Map Expression”属性就是提供给我们的最简单的方法来为子报表设置parameters的值,它允许我们定义一个最终可以返回java.util.Map对象的表达式,使用这种方法我们可以把从外部应用程序传到父报表里的parameter对象,当然这个parameter的实际值是一个java.util.Map对象传递给子报表使用(比如$P{TestMap}),这里我们也可以使用内建的报表parameters:$P{REPORT_PARAMETES_MAP}把子报表中的java.util.Map对象传递到父报表中供使用。

使用iReport制作报表模板

使用iReport制作报表模板

文档选项将此页作为电子邮件发送New site featureKick-start yourJava apps with free software回页首使用iReport 制作报表模板级别: 初级舒峰, 软件工程师, 湖南省长沙铁道学院科创计算机系统集成有限公司2005 年 1 月 01 日现在很多公司和个人都在使用iReport 制作报表模板,我接触的时间也不长,在这里,我将我在实践过程中的一些经验以及碰到的一些问题和大家一起来探讨。

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

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

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

二、模板制板将iReport 解压缩以后编辑目录下的iReport.bat 文件即可,如下@echo offset JAVA_HOME=C:\j2sdk1.4.0_03set ANT_HOME=C:\antset IREPORT_HOME=C:\Documenti\progetti\iReport\iReport2 rem %ANT_HOME%\bin\ant javadocs %ANT_HOME%\bin\ant iReport只要设置相应的一些路经就可以,这里是采用ant 来运行,当然如果你没有安装ant 也不想安装它,那么也可以,找到noAnt 文件夹下的startup.bat 文件即可运行。

建立新模板时,便得到如图所示的界面。

选中菜单项"Datatsource",单击其子菜单项"Connection/Datasources",便会弹出一个编辑框,选择"New"按钮,输入数据源名称,选择JDBC Driver,在输入JDBC URL时,可以点击"Wizard"按钮,它会根据你选的JDBC Driver配置好你的URL,不过得修改IP地址以及DatabaseName,输入数据库名、用户名、密码。

iReport制作报表

iReport制作报表

iReport制作报表详细步骤(数据源以javabean dataset为例,生成的报表以excel为例)一编写java类1)javabeanpublic class User {private Integer id ;private String name ;private String addr ;public Integer getId() {return id;}public User() {super();}public User(Integer id, String name, String addr) {super();this.id = id; = name;this.addr = addr;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}}2)serviceimport java.util.ArrayList;import java.util.List;import er;public class UserService {public List<User> findUser() {List<User> us = new ArrayList<User>() ;for (int i = 0; i < 10000; i++) {String str = String.valueOf(i) ;us.add(new User(i,str,str)) ;}return us ;}}3)factoryimport java.util.List;import com.ireport.model.JSInfo;import com.ireport.model.PayInfo;import er;public class GetBeanDatasetFactory {public static List<User> findUser(){return new UserService().findUser() ;}public static List<JSInfo> findJs(){return new UserService().findJs() ;}public static List<PayInfo> findPay(){ return new UserService().findPay();}}二配置classpath选择”工具”->”选项”,即出现如下界面:Classpath配置:D:\ws2为java项目的workspace;IreportTest为项目名。

JasperReport创建多个子报表

JasperReport创建多个子报表

JasperReport创建多个子报表2012年9月01日项目中遇到了需要在一个报表中显示多个不同table的问题,不同的table的数据源不同,通过网上查找资料,多方面显示通过子报表可以解决。

但网上资料重复,而且方法各种各样,通过多方面的尝试,结合大家的方面,总结了一个成功的方面。

留下记录,以备后用。

1、首先创建主表,按照一般的步骤来。

2、主表创建完毕后,创建子报拖动Subreport到主表中,然后按照下一步一路默认点下去。

这样就创建一张新表。

3、设置主表中的参数。

在主表的Parameters中添加参数(1)SUBREPORT_DIR注:这个参数是子报表的路径参数,使用相对路径时用到的。

创建子报表默认的一个参数,这里就没有进行修改了。

(2)parameter1注:这个参数就是子报表的数据源,这里是通过javabean绑定数据源的方式,所以Parameter Class选择的是List,网上有选择其他类型的,试了试选择其他类型的我没有成功。

通过这2个参数就是1个子报表需要用到的参数。

如果有n个子报表就创建2n 多个参数。

4、设置主报表模版中的子报表参数。

在主报表中选中子报表,显示属性,相关的属性有4个最重要的属性设置有2个其中Subreport Expression属性是设置子报表路径。

一般新建报表后默认就生成了,不需要修改,但其中的参数部分需要和前面步骤3中设置的路径参数一样。

注:创建多个子报表时默认的参数是一样的,这时就需要修改一下这个路径参数了。

主要属性设置是Connection type:选择为Use a datasource expressData Source Expression:设置为new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{parameter1}) 其中参数部分为步骤3中设置的数据源参数一样。

iReport多级子报表循环显示之dataSource传递方法

iReport多级子报表循环显示之dataSource传递方法

iReport多级子报表循环显示之dataSource传递方法iReport多级子报表循环显示之dataSource传递方法2015年3月1.一级子报表当主报表包含子报表,子报表中数据需循环显示多条时:Java程序如下:// 将需要循环的信息放入List中List tList = new ArrayList();tList.add(tInfoBean1);tList.add(tInfoBean2);// 将List放入SubDataSource中SubDataSource tSubDataSource = new SubDataSource();tSubDataSource.setDetailItems(tList);// 将SubDataSource放入传入报表模板实体的属性中tReportMainBean.setSubDataSource (tSubDataSource);// 设置报表模板的dataSourceReportDataSource dataSource = new ReportDataSource();// 将传入的Bean设置到dataSource的parameter中dataSource.setParamObject(tReportMainBean);// 生成PDFnoticeByte = JasperReportUtil.runReportT oPdf("reportPath", dataSource);主报表中添加parameter接收传入的ReportMainBean中SubDataSource参数:设置SubDataSource参数属性Parameter Class为net.sf.jasperreports.engine.JREmptyDataSource设置子报表参数Connection type为 Use a datasource expressionData Source Expression为$P{SubDataSource}子报表中添加对应的Fields接收传入的子报表对应Bean中属性:设置子报表开展属性Split Type为Stretch,实现循环显示多条数据。

ireport设计子报表的实现

ireport设计子报表的实现

Ireport子报表的实现以及参数的传递1.打开ireport后,首先设置数据源,这里对数据源进行命名为JDBCCONN,设置好之后点击test可以测试连接是否正确,若是不正确可能有以下几种原因,url地址错误用户名或者密码错误没有引入连接数据库所需要的jar包2.新建报表后对该报表绑定数据集,如下图所示,选择你所需要在报表中显示的数据所对应的数据库表。

然后选出所需要显示的表数据。

3.将通过步骤二所得到的数据添加到报表中来,此时数据会显示在Fields中。

这里可以根据自己的需要将这些Field拖动到报表中来,根据自己所需要的格式来布局。

4.设计字表,在组件面板中找到subreport,将子报表拖到父表中来,5.若是子报表存在则选择该表所存在的位置,若不存在则新建子报表,如图所示:6.为字表显示数据绑定所需的数据集7.将查询出来的数据添加到字表中的fields中。

8.此处的分组可以设置可不设置,在设计好子表后也可以对所需的数据进行分组操作。

9.设置子报表的名称,这里可以看到子表所存在的相对路径和绝对路径。

10.子表和父表11.子表中新增一个参数,这里设置为sid,该变量的含义是父表示通过一个参数来查询所对应的子表。

这里的sid的类型必须和父表中查询所对应的字段类型相同,不然会出现类型不匹配错误。

12.父表中选中字表,查看子表的属性,查找parameters选项。

新建一个parameter,该参数是和子表交互所传的参数。

上面说过子表中建立的sid参数的数据类型必须和父表中参数的数据类型一样,主要体现在这里。

13.设计好子表,点击preview后首先弹出的是如下图所示的对话框,这里就是通过附表索要传递的参数,这里可以通过手动输入来查看。

14.现在点击父表的preview,查看如下图所示,证明参数已经传递到了字表中。

子报表的设计以及参数的传递已经正确执行。

Ireport+JasperReport制作报表二-JasperReport编译模板

Ireport+JasperReport制作报表二-JasperReport编译模板

Ireport+JasperReport制作报表⼆-JasperReport编译模板1. JasperFillManager:填充管理,主要的⽅法如下:fillReport:填充报表,多态函数,返回值为JasperReport,参数为报表和报表参数Map,参数Map⾥包括Parameters、DataSource等,如果是从数据库取数据还要有connection参数;fillReportToFile:填充报表⽣成⽂件,多态函数,⽆返回值,参数为源⽂件、⽬标⽂件和报表参数Map。

2. JasperExportManager:导出管理,主要⽅法如下:exportReportToPdfFile:导出PDF⽂件,多态函数,提供⼏种⽅式:从源⽂件导出到⽬标⽂件、从JasperPrint导出到⽬标⽂件、从源⽂件流导出⽬标⽂件,如果枚举的话有9种⽅式,⽆返回值。

exportReportToHtmlFile:导出HTML⽂件,同上exportReportToXmlFile:导出XML⽂件,同上3. JasperPrintManager:打印管理,主要⽅法如下:printReportToPdfFile:把报表导出成PDF⽂件,然后⾃⼰打印;printReport:直接打印报表,多态函数,提供⽂件名、⽂件流或JasperReport直接启动打印,返回值true/false;printPages:同printReport,但参数增加了页数选择。

4. JasperCompileManager:编译管理,把.jrxml⽂件编译成.jasper⽂件,主要⽤到的⽅法只有⼀个,compileReportToFile:多态函数,参数.jrxml⽂件名或者JasperDesign、InputStream和输出.jasper⽂件名5. JRRewindableDataSource:定义⼀个可以往回查看记录的⽅式的接⼝,主要⽅法是moveFirst移动到第⼀⾏,是JavaBean和TableModel等数据源的祖先。

ireport中布局设置

ireport中布局设置

ireport中布局设置
报表的布局设置
在报表中
本报表是用线画出来的表格,detail栏的每个框外面有3条线(左,右,下)
%V{countries} 是不确定的的字符串长度,
如何实现在%V{countries}的长度超过T extField的框的宽度时自动换行,关且使旁边的几条线也跟着自动适应bank呢?
注意选中Stretch type :Relative to tallest object
还要选中Stretch with overflow: 选中状态
左右两条线的设置:
Stretch type :Relative to bank height
Position type :默认
上下两条线设置(没上线,因为列表,一条放在下面的线就行了):Stretch type :No stretch
Position type :Fix relative to bottom
设置好后,
看效果图:
可以清楚的看到一个合格的报表了。

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

Ireport子报表的实现以及参数的传递
1.打开ireport后,首先设置数据源,这里对数据源进行命名为JDBCCONN,设置好之后点
击test可以测试连接是否正确,若是不正确可能有以下几种原因,
url地址错误
用户名或者密码错误
没有引入连接数据库所需要的jar包
2.新建报表后对该报表绑定数据集,如下图所示,选择你所需要在报表中显示的数据所对
应的数据库表。

然后选出所需要显示的表数据。

3.将通过步骤二所得到的数据添加到报表中来,此时数据会显示在Fields中。

这里可以根
据自己的需要将这些Field拖动到报表中来,根据自己所需要的格式来布局。

4.设计字表,在组件面板中找到subreport,将子报表拖到父表中来,
5.若是子报表存在则选择该表所存在的位置,若不存在则新建子报表,如图所示:
6.为字表显示数据绑定所需的数据集
7.将查询出来的数据添加到字表中的fields中。

8.此处的分组可以设置可不设置,在设计好子表后也可以对所需的数据进行分组操作。

9.设置子报表的名称,这里可以看到子表所存在的相对路径和绝对路径。

10.子表和父表
11.子表中新增一个参数,这里设置为sid,该变量的含义是父表示通过一个参数来查询所
对应的子表。

这里的sid的类型必须和父表中查询所对应的字段类型相同,不然会出现类型不匹配错误。

12.父表中选中字表,查看子表的属性,查找parameters选项。

新建一个parameter,该参
数是和子表交互所传的参数。

上面说过子表中建立的sid参数的数据类型必须和父表中参数的数据类型一样,主要体现在这里。

13.设计好子表,点击preview后首先弹出的是如下图所示的对话框,这里就是通过附表索
要传递的参数,这里可以通过手动输入来查看。

14.现在点击父表的preview,查看如下图所示,证明参数已经传递到了字表中。

子报表的设计以及参数的传递已经正确执行。

相关文档
最新文档