IReport报表制作概述最新版
ireport 报表
Ireport报表1、Ireport简介iReport也是开源组织中的一款免费软件,其主要作用是用来以可视化的方式设计生成JasperReport所使用的报表格式文件,因为JasperReport本身并未提供很好的可视化报表设计工具,iReport的出现正好弥补了这个缺陷。
2、报表的动态对象变量、参数、字段l字段(Fields):是数据库抽取出来的,希望在报表中出现的数据库内容。
比如一个ID的所有值。
$F{filedsName}l参数(Parameters):这是你的应用需要提供给报表的入口,比如你希望在报表被解释的时候提供Where语句的条件值,那么就可以使用参数(Parameters)。
$P{parameterName}l变量(Variables):这是报表中一些逻辑运算的表现,比如统计值。
$V{variablesName}3、报表结构报表被垂直分成若干个部分,每一个部分我们叫它“band”。
每一个band都有自己的特性,在报表生成的时候有些会打印一次,有些会打印多次。
报表的结构大致是几个部分:title、pageHeader、columnHeader、detial、columnFooter、pageFooter、summary、groupHeader、groupfooter。
如下:Title:title段只在整个报表的第一页的最上面部分显示,除了第一页,不管报表中有多少个页面也不会再出现Title band中的内容。
就是报表的标题。
pageHeader:pageHeader段中的内容将会在整个报表中的每一个页面中都会出现,显示的位置在页面的上部。
如果是报表的第一页,pageHeader中的内容将显示在Title Band下面,除了第一页以外的其他所有页面中,pageHeader中的内容将显示在页面的最上端,即页眉。
报表的一些公共要素,比如页码、创建时间、创建人等信息放置在这里是比较好的选择。
使用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图文教程(超详细)(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设计报表一、必须使用的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制作报表的原则:1.所有的中文字全部用宋体;2.与数字有关的字段要右对齐(包括columnHeader中的text Field中的文字及detail中的Filed中的内容),与文字有关的则要左对齐(也包括以上两部分);3.各组件之间不能有空格。
4.当生成PDF格式时,可能会出现中文内容无法显示,主要是设置Font的时候要注意以下几点:(1) 设置字体的Font Name需要是能显示中文的,比如:宋体;(2) 设置PDF Font Name为STSong-Light;(3) 设置PDF Encoding为uniGB-UCS2-H(chinese Simplified);(4) 是否lib中包含iTextAsian.jar文件。
二:ireport中的各段的用途:title段只在整个报表的第一页的最上面部分显示,除了第一页以外,不管报表中共有多少个页面也不会再出现title段中的内容。
pageHeader段中的内容将会在整个报表中的每个页面中出现,显示的位置在页面的上部,如果是报表的第一页,pageHeader中的内容将显示在title段下面,除了第一页以外的其他所有页面中pageHeader中的内容将在显示页面的最上端。
columnHeader段针对detail段的表头段,一般情况下在这个段中的内容每页均会出现一次。
detali段是报表内容段,在这个段中设计报表中需要重复出现的内容,detail段中的内容每页都会出现。
columnFooter段针对detail段的表字段,每页均会出现一次。
pageFooter段显示在所有页面的最下端,每页都会显示,最后一页由lastPageFooter替代。
summary是表的合计段,出现在整个报表的最后一页中的detail段的后面,一般用来统计报表中某一个或某几个字段的合计值。
三:irport中各组件的用法:Line(线段),Rectangle(矩形),Ellipse(椭圆形),static text(不会变动的文字),text Field(动态文本),image(图片),subreport(子报表)static text用于显示不会改变的文字,就是固定了的文字,如title中的文本,pageHeader中的文本等。
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报表培训文档
iReport报表培训文档报表功能的实现前言报表的生成主要包括报表模板的建立和生成代码的开发。
在华腾公司小企业信贷系统的开发中,模板的生成主要是使用iReport软件来进行的,在模板生成之后会将其配置到小企业信贷系统的相关目录下,之后会在程序代码的编写过程中调用其功能并向其传递参数。
以上叙述的是软件开发过程中生成报表的主要过程,本文档以下内容将对整个过程涉及到的相关信息进行简单介绍。
一.iReport介绍本部分主要介绍iReport生成报表功能的简单应用,和软件开发中使用到的部分功能,参照文档为《iReport中文详细教程》,其他进阶功能在本文中不做介绍1.1 iReport简介iReport 是一个能够创建复杂报表的开源项目,它100%使用Java 语言编写,是目前全球最为流行的开源报表设计器之一。
由于它丰富的图形界面,你能够很快的创建出任何一种你想要的报表。
以下是iReport 一些比较突出的功能:•拖拽式,所见即所得的报表编辑器;•多样的向导来简化复杂的报表设计任务;•超过30 个排版和格式化工具;•报表可转换为PDF HTML EXCEL FLASH CSV RTF TXT OpenOffice Java2DJRViewer 等格式;•支持所有有效的数据源。
如:JDBC,CVS,Hibernate,JavaBean 等;•用户自定义数据源;•无限次数的撤消/重做;•集成脚本(scriptlet)支持;•内置图表支持:超过20 种的图表支持。
并可扩展;•国际化:集成超过15 种语言;•报表模板与报表库样式管理;多少个页面也不会再出现Title band 中的内容。
就是报表的标题。
pageHeader Band:pageHeader 段中的内容将会在整个报表中的每一个页面中都会出现,显示的位置在页面的上部。
如果是报表的第一页,pageHeader 中的内容将显示在Title Band 下面,除了第一页以外的其他所有页面中,pageHeader 中的内容将显示在页面的最上端,即页眉。
IReport报表制作概述版模板
IReport报表制作概述最新版模板介绍IReport是一款功能强大,易于使用的报表设计工具,它能够将数据转换为具有可视化效果的报表,以满足各种类型的报告需求。
IReport支持多种数据源,如数据库、XML和CSV等格式,它的设计灵活,可通过简单地拖放、文本字段、图形和表格等方式来创建自定义报表。
IReport 5.6.0是最新版本,它提供了许多新特性和改进,包括:•新的模板设计器,提供更简洁、直观的报表设计体验;•支持多个数据源和数据源连接;•更好的报表预览和调试;•改进了表格、图形和子报表等元素的设计和输出效果;•支持多种格式的输出,如PDF、HTML和Excel等。
本文将介绍最新版IReport的报表制作概述和模板设计流程,以帮助用户更好地使用该软件。
报表制作流程使用IReport制作报表,一般需要经历以下步骤:步骤一:准备数据源在IReport中制作报表,首先需要准备数据源。
数据源可以是数据库、XML或CSV文件等格式,用户需要通过数据源配置向IReport提供数据源连接信息。
在IReport中,用户可以通过“Data Sources”(数据源)窗口来管理和配置数据源。
用户可以通过“New Connection”(新建连接)向IReport添加新的数据源连接,也可以通过“Data Source Wizard”(向导)来指导IReport配置数据源。
步骤二:设计报表模板在完成数据源配置后,需要设计报表模板。
在IReport中,可以通过简单的拖拽和布局等方式来创建报表模板。
IReport支持多种报表元素,如文本、表格、图形和子报表等。
用户可以根据需要选择适当的报表元素,并将其拖动到设计区域。
在设计报表模板时,用户可以设置各种属性,如字体、颜色、对齐方式和格式化等。
步骤三:生成报表在完成报表模板设计后,需要生成报表。
在IReport中,用户可以根据需求选择不同的输出方式,如PDF、HTML或Excel等。
Ireport3.0最新中文版图文教程(一)
iReport图文教程作者:罗代均 ldj_work@目录1.第一个报表2.分组报表3.子报表4.图形报表5.创建web报表0.准备工作本教程用到的软件1.iReport 1.2.82.MySQL 5.03.MySQL Admin Tools4.Tomcat5.05.Struts 1.26.jdk 1.4创建测试数据库使用MySQL Admin Tools图形化工具创建如下两张表Employee 雇员信息表,字段如下empId int 雇员ID 自增,主键deptId int 部门IdempName, nvarchar(20) 雇员姓名Deprtment 部门信息表,字段如下deptId int 部门ID 自增,主键deptName nvarchar(45) 部门名称1.第一个报表将下载到的iReport解压到任意目录,ireport自带了MySQL的JDBC驱动,双击iReport.bat启动iReport 软件,界面如下:图1,新建报表文档1.如图1,新建报表文档,名称为FirstReport2.选择”Data---->连接/资料来源”菜单3.新建数据库JDBC连接,单击 “new” 按钮,弹出如下窗口,设置JDBC连接参数4.新建报表查询选择”Data---->报表查询”菜单,出现如下窗口,输入SQL语句: select * from employee5.放置列标题6放置详细信息将empId,deptId,empName三个字段拖入detail栏内7.查看报表结果最后报表结果如下2.分组报表1,新建报表文件,名称为groupReport,2.新建报表查询选择”Data-->报表查询”,输入如下SQL语句select t2.deptName,t1.empId,t1.empName from employee t1left join department t2 on t1.deptId=t2.deptId3.新建报表群组输入分组名称”deptName”,以及分组的字段”$F{deptName}”4.放置报表数据将deptName拖入deptNameHeader栏, empId,empName拖入detail栏5.查看报表结果报表结果如下,可以看到,已经按照部门名称分组了.我们还可以单击“T ”快捷按钮,加入一些静态文字信息。
IReport3.6报表使用说明
IReport报表使用说明书安装报表工具下载ireport:/projects/ireport/files/下载iText :/projects/itext/files/注:中文包使用工具:ireport3.6.0+jasperreport3.6.0这两个都是使用目前为止最新的版本,注意这两个版本最好一致,如你使用ireport3.6.0的话jasperreport也最好使用3.6.0版本的。
IReport的报表设计过程1、安装好ireport3.6.02、加入中文包:这里可以看到报表标题和列头部都有中文。
中文如何处理?要是不处理好中文,预览的时候外部的pdf浏览器是无法显示有中文的文字的。
首先,得把iTextAsian.jar(亚洲语言包解决中文pdf问题)选择“选项”,弹出的窗口如:把几个包加进里面,按“确实”完成。
3、配置数据库:通过点击来配置数据库,单击后的界面:点击NEW来新建自己的数据库配置,选择版本类型:下一步:填写完配置后,测试:保存后完成配置数据库。
4、新建报表模板打开ireport3.6.0,点文件菜单下的new…菜单,新建一个报表模版,如下图或者直接点击界面进入:5、选择报表模版或样式iReport3.6.0已经内置了很多样式给我们使用,我们可以直接使用,或者是选择空白的样式自己设计模版。
如下图:现在我们用创建报表的向导来完成创建。
点击来执行向导;填写报表名称和存放路径:填写完成后,执行下一步:选择要查询的数据库,开始编辑SQL查询语句:用户可以自己在这里写查询语句;当然,如果不太记得表里面的数据字段和类型,可以通过点击来实现SQL查询语句的设计。
点击后的界面:双击选中要查询的表。
选择要查询的字段:添加查询表达式,点中select右击:弹出的表达式编辑器:点击OK完成。
若我们要用count方法与GROUP BY 来分组,选择分组的字段,右击,选中GROUP BY 完成。
如下:同样,当我们要用到order by 的字段,可以通过这种方法来完成。
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帮助文档(step by step)
iReport 使用幫助(step by step)要打印的報表預覽與說明:1.要打印的報表Booking Hotel Information(PDF預覽):2.數據說明:Booking Hotel Information由7組數據組成,分別為:1)Contact Person Information2)Guest Information(與BookingHotelInformation為(一對多關系),具體有多少條記錄不確定)3)HotelInformation4)Check In/Out and Flight Details5)Room Detail(與BookingHotelInformation為(一對多關系)具體有多少條記錄不確定)6)Remaks7)Total Amount(MYR)3.報表的設計:考慮到報表中含有一對多的關系,因此頇要子報表。
報表則設計為一個父報表,兩個子報表。
Are you Ready??Step one:準備好要打印報表的數據1.說明:在項目開發過程中,需要打印的數據往往都是在業務層已經準備好了,為了更好的模擬真實項目的環境,我們在程序的業務層準備好打印報表的數據(模擬要打印的數據):2.Booking Hotel Infamtion的業務層處理類為:BookingHotelFacade.java,在該類中準備需要的數據,首先我們從簡入繁,先開發報表的的標題與Contact Person Information部分,如下圖所示:3.我們在業務層中準的數據為:package com.techson.facade;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;public class BookingHotelFacade {public static List<Map<Object, Object>> mapList() {List<Map<Object, Object>> mapList = new ArrayList<Map<Object, Object>>();for(int i=1; i<5; i++) {Map<Object, Object> map = new HashMap<Object, Object>();map.put("id", "BK0811000" + i);map.put("bookingDate", new Date());map.put("customerName", "DENG");map.put("email", "DYFDYX@");map.put("telOne", "12345678764");map.put("telTwo", "21312345445");map.put("fax", "5161155151516");mapList.add(map);}return mapList;}}4.數據處理的幾點說明:1)使用List<Map<Object, Object>>能更靈活的處理數據,建議使用。
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子报表(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制作报表作者:㊣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系统的数据源信息框。
IReport3.7开发Web报表
我已经很久没有亲自使用IReport开发报表了,记得当时用时还是零点几版本,转眼这么久过去了(估计2年了吧),今天公司要开发报表,而新同事们都不会,只好亲自上手做一个,也算是Demo吧。
再次到的官网下了一个IReport3.7.2的最新版,惊奇发现现在这东西好用多了,完全是Netbeans 框架实现的(本人可以Netbeans的忠实粉丝,一直用Netbeans开发)操作方便、人性化。
好了下面我就逐步来介绍IReport的使用,以后还打算写一个在项目中使用报表的例子。
1、下载IReport(既是废话,又套路,呵呵,就从这里开始吧)官网下载地址是:/plugins/project/project_home.php?projectname=ireport2、安装IReportIReport安装十分简单,这里就略了,否则真要被人拍砖了。
3、运行IReport直接在桌面上双击IReport图标就可以了,IReport3.7.2的闪屏还是蛮好看的,大家看看吧,如下图:进入IReport主界面后,大家会发现其和Netbeans真的是很像,毕竟一个遗传基因的,呵呵。
还是中文版的哦。
4、使用报表向导我将以一个简单报表的制作来讲解IReport制作报表时的一些常用项。
选择菜单中”文件“——>”New“(如图所示):进入报表设计的向导程序(如下图所示),在向导程序中可以选择报表模板,其它的(如风格、图表等)目前都不能用,我就选择”Blank A4“:选择”Launch Report Wizard“,系统引导你下一步(如下图所示)。
在这一步中在”Report Name“中输入报表的文件名,”Location“中指定报表文件存储目录。
选择”下一步“按钮,系统引导你配置数据源模式(如下图所示),在这里系统默认提供两种数据源模式”Empty DataSource“和”Sample Database(HSQLDB test)“,我在这里新建一个自己的数据源模式——”Javabean DataSource“。
ireprot报表
报表两个工具: Ireport (设计,可视化工具)JasperReport (代码,实际是一些jar)怎么做报表: (四个阶段,前两个阶段用IREPORT)1.设计Design ( .jrxml)2.编译Complile (.jasper)3.填充Fill (数据→.jasper)4.导出Export (pdf/excel/word/html,….其它格式)Ireprot使用1.配置环境变量JA V A_HOME我的电脑→属性→高级→环境变量2.启动ireport3.新建一个设计.jrxml档案→开启新档→如下图Ok后出现下面菜工具Options菜单→选项c)支持中文格式化菜单→报表字型应用字型(shift可选多个)选中界面上所有内容→右击→属性→font→刘体数据库1.配置数据源Data菜单→连接/资料来源→new(如果是用mysql以外的数据库,要把驱动程序复制到Ireport/lib目录)2.在新建设计后,(空的也可以),Data菜单→报表查询→写sql语句select * from emp3.在设计上,拖字段到界面参数查询:1.配置参数预览菜单→报表参数→2.改写查询语句Data菜单 报表查询select * from emp where depid=$P{p}这里大写P不能改成小写(小写p就是上面配置参数)用java类来测试报表1)复制刚才编译后的.jaspter文件到工程src下2)复制.jasper的开发包到lib下3)虚拟转真实路径4)填充5)导出//导阵格式为pdf,且要用字节流response.setContentType("application/pdf");OutputStream out = response.getOutputStream();// 弹出下载框response.setHeader("Content-Disposition", "attachment;filename=student.pdf");//虚拟转真实路径String path =request.getSession().getServletContext().getRealPath("/WEB-INF/classes/reports/student.jasper");//填充 path要填充哪个,map填充参数,con连接int depid = Integer.parseInt(request.getParameter("depid"));Map map = new HashMap();map.put("p", depid);Connection con = HibernateSessionFactory.getSession().connection();JasperPrint print = null;try {print = JasperFillManager.fillReport(path, map, con);} catch (JRException e) {// TODO Auto-generated catch blocke.printStackTrace();}//导出try {byte[] data = JasperExportManager.exportReportToPdf(print);out.write(data);} catch (JRException e) {// TODO Auto-generated catch blocke.print StackTrace();}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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六、右键单击画出的静态字段框选‖属性‖,在弹出的对话框中(见图6)设置其它属性:Font选项卡中设置字体的相关属性。
(1)在Font Name 选字体;(2)Size选字体大小;(3)P DF 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中是设置该属性的边框。
图6七、在主窗体的“Library”中设置“Field”和变量(见图7)。
右键点“Field”选“添加”–“Field”,在对话框中输入 Field 的Name(名字)和Description(描述—路径值)。
Name(名字)的值可以为任意字符,Description的值为系统中某字段的名称或者XML文件中的路径。
统计报表中Description的值为某个字段在XML文件中的路径,在其它类型报表中Description的值为档案系统中某字段的名称,除了数据库字段外,还必须增加rows字段,并field Description设置报表所需打印的行数。
图7八、双击‖Library‖中的‖Fields‖会看到刚才添加的‖Field‖,左键按住‖件号‖拖到表格中,Field就会在框中了,右键可设置‖Filed‖框的各种属性(和静态字段框一样的), 继续增加其他Field并拖到表格中,调整好位置和宽度。
九、主窗体菜单“Data”中的“连接/资料来源”是设置数据源的(见图9),点击“连接/资料来源”后系统弹出“Connections/Datasources”对话框(见图10)。
图9十、在“Connections/Datasources”对话框中点‖new‖,选‖XML filedata source‖,如下图:十一、单击“next”按钮,输入‖name‖(名字)、选中‖Use the report Xpath expression when filling the report ‖、点―Browse‖选择xml文件数据源,注:关于XML文件需要从系统的定义档案模版,选择中相应模版的结构,在“报表”页面,增加报表页面里有个下载样例数据。
选完后,可以点下方的‖Test‖测试是否通过。
(见图11)图11十二、在主窗体中选择―Data‖–―报表查询‖,系统弹出“Report Query”对话框,在“Report Query”对话框中,“Query language”设置为“Xpath”,输入XPath路径(测试数据中为/data/descendant::Package/Description)。
(如图14)图14十三、在主窗体中,点击数据源下拉列表,从中选择数据源。
(如图15)图15十四、编译并执行报表。
报表的执行包括无数据执行和有数据执行。
(如图15)编译无数据浏览有数据浏览图15附注:报表设计一些技巧1、报表设计器属性PDF格式:高度、宽度参数是数字30都代表1CM;如:ColumnHeader的高度设置为5CM,此时需要设成150EXCEL格式:高度为28.85代表1cm,宽度为30.05代表1cm。
如:ColumnHeader的高度设置为5CM,此时需要设成144。
打印条件设置2、new Boolean(!$F{题名}.equals(null)),是指当题名字段不为空时打印,也可通过勾选Text Field属性中的Blank when null 来实现(注:excel报表中由于线条显示是需要通过textField边框来实现,最好习惯使用Blank when null来实现字段值为空时打印空白)3、new Boolean($F{题名}.length() > 117) ,是指当题名字段的长度大于117时打印4、new Boolean($V{REPORT_COUNT}.intValue() % 11 == 0),是指报表的行数为11时出现,一般用于报表底部粗线的打印条件5、$F{起止日期}.substring(0,4),是指截取起止日期的前四位,用截取函数时,最好加上条件,即new Boolean($F{起止日期}.length() > 4),否则如果起止日期为空时,报表就无法正常打印了,如果想从第五位开始取4位的话,$F{起止日期}.substring(4,8)6、new Boolean(!$F{案卷题名}.equals(null) && $F{案卷题名}.split(";").length==5) ,是指题名内容里有四个“;”号;7、$F{案卷题名}.split(";")[1],是指出题名的第二段8、new Boolean($F{案卷题名}.indexof(";")==-1),判断案卷题名中是否包含";",若不包含返回值为-1。
9、如报表需要按什么分组打印,可增加的一个字段group,并设置原卷号_2;属类号_1,是指按原卷号与属类号分组打印。
10、如果报表是复合报表,取案卷库字段用_1,取卷内库字段_211、new Integer($F{文件标题}.toString().trim().length())取文件标题的实际长度。
12、new Integer(Integer.parseInt($F{案卷号}.toString().trim()) 把字符型转换为整型。
13、取文件形成日期的月1、打印条件new Boolean(new String($F{文件形成日期}.replaceAll( "/","-" )).indexOf("-")>0)2、输出值new Integer(newSimpleDateFormat("yyyy-MM-dd").parse($F{文件形成日期}.replaceAll( "/", "-" )).getMonth() + 1).toString()IReport介绍什么是iReport?iReport是一个能够创建复杂报表的开源项目,并且它能调用JasperReports库应用于任何一种java应用程序。
本身是分布式的且由符合GNU通用公共许可的百分之百纯java编写。
由于它丰富的图形界面,你能够很快的创建出任何一种你想要的报表。
必要条件:iReport需要Sun Java 2 SDK 1.4以上版本; 为了能编译jasper文件就必须安装完整的java2(JDK),不光是(JRE)这个运行环境。
如果你还想编译iReport源代码,你还要安装Jakarta Ant version 1.6以上版本。
硬件方面,类似于java的环境,iReport也占很多的RAM,所以它也需要至少256Mb 的内存和至少20Mb的磁盘空间。
报表结构这章我们将分析报表的构成,来观察一下它由那几部分构成,当用数据打印时这几部分是如何运转的。
Bands一个报表依靠―type‖页来定义说明。
它被分成不同水平的一份被叫做bands。
当报表加入数据去打印时,这些部分被印刷很多次依照他们自身的属性(依照报表创建者设计的规则)。
举个例子,page header 被重复的打印在每页的开始部分,这样的话,每个band都会重复的打印每一单一的记录。
这个―type‖ 页被分成9个预先确定的bands作为新组被加进去。
事实上,iReport 控制每一个头条(Group header)和一个摘要条(Group footer)为每一个组。
图4.1一个带总是和页的宽度一样(左右的空白除外)然而它的高度,即使已经被设计好,但可能还会依据被包含在内的元素的实际来打印;它能够自由的延长靠近页底。
这种特色的出现在bands包含一个subreports或者text field时纵向的内容。
通常情况下,bands的高度被用户指定一个“minimal height”。
不是所有的bands能依照内容被这个外力改变,特别是:Column Footer,Page Footer 和Last Page Footer.所有的band高度的总和(除了background)总是小于或等于页的top和bottome之间的最小高度。
Title这是首先看到的band。
它被创建仅仅一次,可能被打印在每一分开的页。
耍点小聪明,你能利用这个模拟一个无效的subreports(随后我将看看如何做)。
关于尺度的确认,它是不可能躲过去的,在报表页的高度设计期间。
As regards the admitted dimensions, it is not possible to exceed,during design time, the report page height (包含top和bottome标记之间)。