iReport报表开发指导手册
- 格式:doc
- 大小:13.28 MB
- 文档页数:89
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报表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实现金额大写●第一步:打开ireport,新建一个报表。
●第二步:在“Scriptlet”选项卡里选择“Use ireport internal scriptlet support”,报表名称定义为“B”,然后点击“ok”按钮。
●第三步:此时ireport已经使用了一个内部定义好的脚本,该脚本是个空壳子,没有实现任何功能。
我们也可以编辑该脚本类,如下操作:点“预览-> Scriptlet 编辑器”,此时会弹出一个编辑脚本类的窗口写入转化金额大写函数如下:static String HanDigiStr[] = new String[] {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};static String HanDiviStr[] = new String[] {"", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿","拾", "佰", "仟", "万", "拾", "佰", "仟", "亿","拾", "佰", "仟", "万", "拾", "佰", "仟"};static String PositiveIntegerToHanStr(String NumStr) { // 输入字符串必须正整数,只允许前导空格(必须右对齐),不宜有前导零String RMBStr = "";boolean lastzero = false;boolean hasvalue = false; // 亿、万进位前有数值标记int len, n;len = NumStr.length();if (len > 15) {return "数值过大!";}for (int i = len - 1; i >= 0; i--) {if (NumStr.charAt(len - i - 1) == ' ') {continue;}n = NumStr.charAt(len - i - 1) - '0';if (n < 0 || n > 9) {return "输入含非数字字符!";}if (n != 0) {if (lastzero) {RMBStr += HanDigiStr[0]; // 若干零后若跟非零值,只显示一个零// 除了亿万前的零不带到后面//if( !( n==1 && (i%4)==1 && (lastzero || i==len-1) ) ) // 如十进位前有零也不发壹音用此行}if (! (n == 1 && (i % 4) == 1 && i == len - 1)) { // 十进位处于第一位不发壹音RMBStr += HanDigiStr[n];}RMBStr += HanDiviStr[i]; // 非零值后加进位,个位为空hasvalue = true; // 置万进位前有值标记}else {if ( (i % 8) == 0 || ( (i % 8) == 4 && hasvalue)) { // 亿万之间必须有非零值方显示万RMBStr += HanDiviStr[i]; // “亿”或“万”}}if (i % 8 == 0) {hasvalue = false; // 万进位前有值标记逢亿复位}lastzero = (n == 0) && (i % 4 != 0);}if (RMBStr.length() == 0) {return HanDigiStr[0]; // 输入空字符或"0",返回"零"}return RMBStr;}public static String toRMB(Double val) {String SignStr = "";String TailStr = "";long fraction, integer;int jiao, fen;if (val < 0) {val = -val;SignStr = "负";}if (val > 99999999999999.999 || val < -99999999999999.999) {return "数值位数过大!";}// 四舍五入到分long temp = Math.round(val * 100);integer = temp / 100;fraction = temp % 100;jiao = (int) fraction / 10;fen = (int) fraction % 10;if (jiao == 0 && fen == 0) {TailStr = "整";}else {TailStr = HanDigiStr[jiao];if (jiao != 0) {TailStr += "角";}if (integer == 0 && jiao == 0) { // 零元后不写零几分TailStr = "";}if (fen != 0) {TailStr += HanDigiStr[fen] + "分";}}// 下一行可用于非正规金融场合,0.03只显示“叁分”而不是“零元叁分”// if( !integer ) return SignStr+TailStr;return "¥" + SignStr + PositiveIntegerToHanStr(String.valueOf(integer)) +"元" + TailStr + "整";}然后点Save保存,即创建了一个脚本,并再保存报表文件,此时你可以到报表文件目录找到一个BScriptlet的java文件,这就是ireport自动生成的脚本类文件(脚本类名= 报表名+Scriptlet)。
准备:①安装jdk,设置jdk环境变量。
②确保有可用的数据库,以及相应的数据库驱动包(JAR包)③ireport,下载解压后,在bin目录招到应用入口程序一.数据库配置以及新建报表文件1. 设置数据库驱动程序点击菜单中的“工具---选项”,弹出如下窗口,点击“Add JAR”按钮,选择所用数据库的驱动程序(JAR包)。
2. 配置数据库连接点击图中红圈内按钮,弹出如下图对话框点“new”,在弹出窗口中双击“DataBase JDBC connection”,弹出数据库连接配置框,如图:,其中要注意的地方是Server Address要带端口号。
配置好之后,点击右下角的Test按钮,测试连接是否可用,弹出successful,表示成功成功。
3. 建立报表文件点击“文件---新建”,弹出页面,选择一个模板,点击“Launch Report Wizard”按钮,如图:,然后会弹出一个窗口,让你选择生成的报表文件的存放位置,选完之后,一路下一步,到结束。
此时,报表文件模板页出现二.报表文件使用方法1. 书写sql语句此时,注意,数据库要选择刚才我们设置的那个。
不然ireport不知道你要执行的SQL语句是在哪个表做查询。
点击如图中所示按钮,书写SQL语句,注意这里,我们查询了project_id,project_name,project_Content字段。
,点击OK 之后,回到报表文件页面,在左侧的Report Inspector边栏中,我们点开fields树,会发现我们查询的字段,出现在这里,按理说,我们现在只要把fields中的几个字段用鼠标拖拽到报表模板中,然后再点击preview预览按钮,就可以看到结果了。
如下图:2. 参数和变量①参数:在左侧Report Inspector栏目中打开parameters树,右键,新建参数,在右侧属性栏中更改参数的名称和数据类型,如下图,参数为param,类型为Integer。
JasperReport4.0.1 用户手册目录1.介绍 (4)2.准备工作 (4)2.1环境要求 (4)2.2下载 (5)3.报表生命周期 (5)4.报表结构 (5)5.Report Datasource (6)5.1 Database JDBC connection (6)5.2 JavaBeans set datasource (9)5.3 File CSV datasource (11)5.4 Microsoft Excel(xls)data source (12)6.报表元素(Report Elements) (12)6.1 Static Texts (12)6.2 Text Field (13)6.3 Crosstab(交叉报表) (13)6.3.1 基本设置 (13)6.3.2 设置报表的语言 (15)6.3.3 对Row Groups中的变量的操作 (16)6.3.3 对Column Groups中的变量的操作 (17)6.3.4 对Measures中的变量的操作 (17)6.3.5 预览报表效果 (18)6.4 List (18)6.4.1 设置List引用的dataset,为List所引用的参数赋值 (18)6.4.2 设置List中内容的扩展方向 (18)6.4.3 设置List中内容的扩展个数 (19)6.4.4 示例中的报表的设计以及运行效果如下图(截取部分) (19)6.5 Table(表格) (20)6.5.1 Table如何获得连接 (20)6.5.2 如何向Table中的参数传值 (20)6.5.3 如何删除或添加一列 (20)6.6 Break(分页符) (20)6.7 Chart(图表) (20)6.8 Subreport (22)6.8.1 为子报表的参数传值 (22)6.8.2 子报表向主报表返回值 (23)7.其它内容 (23)7.1 分组报表 (23)7.2组件对齐技巧 (24)7.3 Style (24)7.4 Scriptlet (25)8、使用中出现的问题以及解决办法 (26)用户手册中demo 需要导入数据源,导入方法:1.介绍iReport 是一个能够创建复杂报表的开源项目,它是用Java 语言编写的,是目前全球较为流行的开源报表设计器。
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版本4.0.2 使用平台dorado71.有标题、页头和表格的基础报表。
1.新建一个A4的报表:选择launch report wizard 按钮→命名report→写入sql(sql的不要有;结尾,做为报表表头的数据必须是唯一的一条)→把sql查出来的所需要的字段添加进去直接下一步这样就完成了。
2.设置参数:右击Parameters添加参数(做为sql中的变量)在Parameter Class中根据实际设置类型。
(*特殊)我需要多设一个参数为CUSTOM_DATASOURCE 的参数传入是传入空值(无需添加给SQL)3.把参数添加给sql右击packed 选择edit query 会出现之前写的sql 右边的有个available parameters 中会显示你所设的参数。
把sql 中的变量替换成相应的参数如select * from table where pk_id=$P{PK_ID} $P{PK_ID}即为所设的参数4.报表排版:接下来我们就能得到所有的字段,把这些字段按实际需求在表中排列(pageheaderdetail····等的用途可以参考网上的其他教程)5.显示设置:如果显示的是数字则需要把Expression Class为java.math.BigDecimal 文字则为ng.String 根据实际需求设置,如果设置不对可能会导致数据显示不出。
(*特殊)由于平台的限制需要显示中文还要设置Pdf Font name is now deprecated. You shoulduse a Font extension when using a not standard font. See Tools->Options->Fonts. STSong-Light和Pdf Encoding UniGB-UCS2-H (Chinese Simplified) 如果不设置内容将显示不出来6.添加新的dataset:由于需要添加一个table 所以我们先添加一个新的dataset。
i-Test3.0报表解决方案说明:类型-创建(C-create)、修改(U-update)、删除(D-delete)增加(A-add)序言在很多实际的项目里,报表都是其中十分重要的组成部分,例如把查询结果以报表的形式呈现出来。
这里所提到的报表可不是简单的二维表,而是拥有复杂表头的、多维的、可以在运行期从数据库中自动读取数据、可自动分页、拥有丰富的页面元素(图片,超连接等)、支持分组和交叉表、支持打印、最好还能导出到Excel或Word…...。
但是显而易见,报表功能越强大,提供的服务越丰富,其复杂度也就越提高,所以仅靠石器时代的手工方式生成报表是不能满足需要的。
所幸,目前我们所熟知的几款报表工具功能上足够强大,而且都附有很方便的报表生成工具。
它们分别是:JasperReport (+iReport),BIRT(+eclipse),水晶报表(+eclipse,JBuiler等等)。
之所以提到这三种报表工具首先是因为他们都是开放源码的(CrystalReportForEclipse1.0已经开源了)。
既然不用考虑费用,那在我们的项目中到底选用哪一个呢?对于水晶报表而言,虽然其在.Net平台上表现十分抢眼,但是在Java平台上,多数的实现都是要收费的(例如For JBuilder 版),而且其Eclipse插件的资源消耗十分惊人。
所以我选择了纯Java的报表工具JasperReport 与iReport的组合。
但是关于JasperReport的文档相对匮乏,其官方文档还是要收费的,所我希望利用这篇文章展示如何利用这一强力组合来进行基于Web的报表开发。
在此将火力集中在如何在Web环境使用JasperReport报表和报表的导出功能等方面,相信在iReport的帮助下,上手会很快的。
编写目的对jasperReport+iReport开发报表的比较详细的向导。
设计原则能够作为单独的模块使用,符合MVC架构体系,能够和I-Test产品低耦合度集成。
开发使用步骤(iReport 4.1.1)◆iReport 4.1.1的安装、配置和介绍(这里不再提,直接进入报表开发)。
◆创建报表(这个项目中的报表为例)iReport基本报表(例:预交费用和押金报表)1.打开iReport文件—--新建---选择BlankA4-----Open this template2.为这个报表起名,和保存位置3.下一步,完成(新建报表完成)4.开始设计(iReport各个部分的功能不介绍)。
点击如图标志,打开report query 界面设计自己的sql语句(刚开始不要考虑sql中得参数写一条死的语句),设计好后会出现如下图,右侧的参数先不用管,点击OK按钮保存4.回到主界面,可以在左侧Fields节点中看到sql中查询出来的所有字段6.表单的设计。
根据需求设计报表,组件面板中各种不同的控件可以根据自己的需要选择,拖动左侧的Fields中的字段放到需要的位置,如图1.合计。
在左侧Variables右击添加字段,在属性中设置其属性,Variable Class 建议使用java.math.BigDecimal(可以保留小数),Calculation中是几不同的函数,根据需要这里选择sum,在Variable Expression 中选择需要求和的字段,设计好好,把Variables中的SUM字段拖到表单中需要的位置就可以啦。
2.预览,参数的设计。
点击Preview预览效果,如果没有问题,设计参数,也就是调整sql语句。
参数:在主界面的Parameters中添加需要的参数,并在属性中配置。
然后保存9.调整sql语句。
重新打开iReport Query 界面,这时候你可以在右侧看到自己设计的参数,拖动参数替换sql语句中之前写死的参数即可,这样,当调用这个报表的时候,以同样的参数名称的参数传给报表即可(前台如何调用报表以及如何传参在后面写到)。
点击保存后,查看预览这时候就会提示你输入参数,报表设计完成。
一、概述iReport是一个非常强大的报表设计工具,它可以帮助用户轻松地创建复杂的报表,并且提供了丰富的功能和工具供用户使用。
其中,table是iReport中非常常用的一个元素,它可以用来展示数据、设置样式和格式化数据等。
本篇文章将介绍iReport中table的用法,包括如何创建table、设置table的属性、添加数据等内容。
二、创建table1. 打开iReport设计工具,新建一个报表模板。
2. 在报表模板中找到“Palette”区域,选择“Table”元素,拖拽到报表模板的合适位置。
3. 设置table的大小和位置,可以通过拖拽来调整大小,也可以通过属性设置来调整。
4. 至此,一个table就创建完成了。
三、设置table的属性1. 双击table元素,打开table的属性设置窗口。
2. 在“General”选项卡中,可以设置table的名称、位置、大小等基本属性。
3. 在“Columns”选项卡中,可以设置table的列数、列名、数据类型等。
4. 在“Style”选项卡中,可以设置table的样式,如背景颜色、边框样式、字体样式等。
5. 在“Advanced”选项卡中,可以设置table的高级属性,如数据过滤、排序、分组等。
四、添加数据1. 在iReport设计工具中,可以使用“Dataset”元素来获取数据。
2. 将数据集拖拽到table元素中,数据就会显示在table中。
3. 可以根据需要设置数据的显示格式、计算字段、合计值等。
五、其他操作1. 在table中可以进行数据的编辑、删除、添加等操作。
2. 可以设置table的交叉报表、合并单元格、设置条件格式等高级操作。
3. 可以通过预览功能来查看table的效果,进行调整和优化。
六、总结通过本文的介绍,相信读者对iReport中table的使用有了更深入的了解。
table是iReport中非常重要的一个元素,它可以帮助用户展示数据、设置样式、格式化数据等。
目录 目录 .................................................................................................................................................. 1 1. 概要描述 ...................................................................................................................................... 3 1.1. iReport简介 ...................................................................................................................... 3 1.2. 功能特点 .......................................................................................................................... 3 1.3. JasperReports基础概念 ................................................................................................... 4 1.4. 生命周期 .......................................................................................................................... 4 2. 安装配置 ...................................................................................................................................... 4 2.1. 报表安装 .......................................................................................................................... 4 2.2. 基础配置 .......................................................................................................................... 7 3. 详细介绍 ...................................................................................................................................... 7 3.1. 报表结构 .......................................................................................................................... 7 3.2. 报表元素 .......................................................................................................................... 9 3.3. 字体和样式 .................................................................................................................... 10 3.3.1. 字体(Font) ............................................................................................................ 10 3.3.2. 样式(Styles) ......................................................................................................... 11 3.4. 字段、参数、变量 ........................................................................................................ 12 3.4.1. 字段(Fields) ......................................................................................................... 13 3.4.1.1. 在Report Inspector栏中创建Field ........................................................ 13 3.4.1.2. 用一个SQL query来创建Field ............................................................. 14 3.4.1.3. 用JavaBean生成Fields ......................................................................... 14 3.4.2. 参数(Parameters) ................................................................................................. 17 3.4.2.1. 在查询中使用Parameters ....................................................................... 18 3.4.2.2. 在程序里使用Parameters ....................................................................... 18 3.4.2.3. iReport内嵌的Parameters ....................................................................... 20 3.4.3. 变量(Variables) .................................................................................................... 21 3.4.3.1. Variables属性详解 .................................................................................. 21 3.4.3.2. iReport内嵌的Variables .......................................................................... 23 3.5. 栏和组 ............................................................................................................................ 24 3.5.1. 栏(Bands) ............................................................................................................. 24 3.5.2. 组(Groups) ........................................................................................................... 25 3.5.2.1. Group实例演示 ....................................................................................... 25 3.5.2.2. Group向导 ............................................................................................... 29 3.6. 数据源 ............................................................................................................................ 29 3.6.1. 常用数据源 .......................................................................................................... 30 3.6.2. JDBC Connection.................................................................................................. 31 3.6.3. JRDataSource接口 ............................................................................................... 33 3.6.4. JavaBean DataSource ............................................................................................ 34 3.6.5. JREmptyDataSource ............................................................................................. 38 3.6.6. Hibernate Connection ............................................................................................ 38 3.6.7. 自定义JRDataSource .......................................................................................... 39