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中非常重要的一个元素,它可以帮助用户展示数据、设置样式、格式化数据等。
2 个月前ireport 交叉报表(转)关键字: ireportjasperReports1.1.1增加了对交叉报表的支持,下午看了下它的三个例子.暂时记下收获:一直对交叉报表的具体定义不太明了.个人理解是报表的行和列都是从数据库中读去的而不是普通那种列固定行是从数据库中读取(这里的数据源不一定是来自关系数据库).crosstab 的dtt定义为:<!ELEMENT crosstab (reportElement, crosstabParameter*, parametersMapExpression?, crosstabDataset?, rowGroup*, columnGroup*, measure*, crosstabCell*, whenNoDataCell?)><!A TTLIST crosstabisRepeatColumnHeaders (true | false) "true"isRepeatRowHeaders (true | false) "true"columnBreakOffset NMTOKEN "10">crosstabParameter:是交叉表中要用到的参数如下:<crosstabParameter name="Country" class="ng.String"><parameterValueExpression>$F{ShipCountry}</parameterValueExpression></crosstabParameter>这个就是把总表的一个域定义到交叉表的一个参数Country,这样在交叉表的数据集的查询或其他地方就可以使用这个参数了交叉表的参数定义:<crosstabParameter name="Country" class="ng.String"><parameterValueExpression>$F{ShipCountry}</parameterValueExpression></crosstabParameter>这里定义了一个参数Country,他的来源是主表的ShipCountry域.crosstabDataset:交叉表允许有自己的数据集如下:<crosstabDataset><dataset><datasetRun subDataset="Country_Orders"><datasetParameter name="Country"><datasetParameterExpression><![CDA TA[$F{ShipCountry}]]></datasetParameterExpression> </datasetParameter></datasetRun></dataset></crosstabDataset>在这个例子中引用了预定义的子数据集Country_Orders(下面会有这个的定义),并且把子数据集中要用到的一个参数的数据来源传递过去.下面是那个子数据源的定义:<subDataset name="Country_Orders"><parameter name="Country" class="ng.String"/><queryString><![CDA TA[SELECT ShippedDate, ShipRegion, ShipCity, FreightFROM OrdersWHEREShipCountry = $P{Country} ANDShippedDate IS NOT NULL]]></queryString><field name="ShippedDate" class="java.sql.Timestamp"/><field name="ShipRegion" class="ng.String"/><field name="ShipCity" class="ng.String"/><field name="Freight" class="ng.Float"/></subDataset>在这个例子中定义了子数据源Country_Orders,他用到了参数Country,我门可以再上面看到这个参数在交叉表中的定义,以及在交叉表的数据源的指定时把参数的来源ShipCountry也传了过去. 下面是交叉表的列头和行头的来源指定:<rowGroup name="Region" width="50" totalPosition="End"><bucket><bucketExpression class="ng.String">$F{ShipRegion}</bucketExpression></bucket><crosstabRowHeader><cellContents><box leftBorder="2Point" bottomBorder="2Point" rightBorder="2Point"/><textField><reportElement x="5" y="5" width="40" height="40"/><textFieldExpression><![CDATA[$V{Region} == null ? "No region" : $V{Region}]]></textFieldExpression></textField></cellContents></crosstabRowHeader><crosstabTotalRowHeader><cellContents backcolor="#60FFFF"><box leftBorder="2Point" bottomBorder="2Point" rightBorder="2Point"/><textField><reportElement x="5" y="5" width="110" height="20"/><textFieldExpression>$P{Country} + " Total"</textFieldExpression></textField></cellContents></crosstabTotalRowHeader></rowGroup>可以看到在上面这段代码中行的标题的指定包含了两部分crosstabRowHeader和crosstabTotalRowHeader.其中bucket来指定这个行标题的分组表达式,同时为他指定了一个名字也就是行分组名字Region,这样在下面可以按一个变量的形式来引用他.列的标题指定与此类似:<columnGroup name="ShipYear" height="30" totalPosition="End" headerPosition="Stretch"><bucket><bucketExpressionclass="java.util.Date">CrosstabApp.truncateToYear($F{ShippedDate})</bucketExpression> </bucket><crosstabColumnHeader><cellContents><box topBorder="2Point" bottomBorder="2Point" rightBorder="2Point"/><rectangle radius="10"><reportElement x="4" y="4" width="52" height="22"/><graphicElement pen="1Point"/></rectangle><textField pattern="yyyy"><reportElement x="5" y="5" width="50" height="20"/><textElement textAlignment="Center" verticalAlignment="Middle"/><textFieldExpression class="java.util.Date">$V{ShipYear}</textFieldExpression></textField></cellContents></crosstabColumnHeader><crosstabTotalColumnHeader><cellContents backcolor="#FFFF60"><box topBorder="2Point" bottomBorder="2Point" rightBorder="2Point"/><staticText><reportElement x="5" y="5" width="20" height="15"/><text>Total</text></staticText></cellContents></crosstabTotalColumnHeader></columnGroup>下面就是为具体单元格的显示样式及内容:<crosstabCell rowTotalGroup="Region" columnTotalGroup="ShipYear"><cellContents backcolor="#60FF60"><box bottomBorder="1Point" rightBorder="1Point"/><textField pattern="#0.0"><reportElement x="0" y="0" width="30" height="30" style="Arial_Bold"/><textElement textAlignment="Right" verticalAlignment="Middle"/><textFieldExpression class="ng.Float">$V{FreightSum}</textFieldExpression></textField></cellContents></crosstabCell>这里:rowTotalGroup,columnTotalGroup分别指定了这类单元格要显示的对应行列分组,也可以只有部分指定,如只指定行或列或行和列都不指定,这样分别有他门自己的意思.对于这个我们工可写出4中类型的crosstabCell,再这之前回有个显示内容的定义:如下<measure name="FreightSum" class="ng.Float" calculation="Sum"><measureExpression>$F{Freight}</measureExpression></measure>这里定义了一个变量FreightSum,他的来源是$F{Freight},计算类型是Sum,我们可以按自己的需求改动这些.对于是多大范围的数据进行Sum,就由引用这个变量的crosstabCell 所指定的行和列来划定.对于上面那个就是由Region和ShipYear来决定的总计.另:我门也可以对行和列进行多个分组,方法类似,具体可参考例子ShipmentsReport。
Ireport制作交叉表1、打开iReport软件,【文件】——>【New】,选择一个报表模版,(以选择第一个模版为例),然后选择“Open this Template”,如图1.1所示。
进入下一个页面,填写文件名,选择文件的存放位置,单击【下一步】,再点击【完成】。
图1.12、从【组件面板】中拖拽“StaticText”控件到“Page Header”部分,双击该控件来填写报表的题目——“学生成绩单“(可从“窗口”菜单中打开【组件面板】)。
3、单击图3.1中的图标,打开如图3.2所示的窗体,在【Reportquery】如图3.2光标所在的位置填写相应的SQL语句:selects.student_name_,s.subject_name_ as subject, s.grade_ fromstudent s。
图3.1图3.24、如图4.1所示,注意要勾选上“AutomaticallyRetrieve Fields”属性,使系统自动读取select 出来的字段,如图蓝色底儿的区域。
之后点击【OK】按钮(注意:不是窗体的“ד)。
同时,这些字段也会在【ReportInspector】窗体的“Fields”区域显示,如图4.2所示。
图4.1图4.25、从“组件面板”中拖拽“Crosstab”控件(如图5.1)到“Summary”部分(注意交叉表必须放置在这个区域),会出现如图5.2所示的窗体,单击“下一步”,如图5.3所示,在“Row Group 1”处从查询出来的字段中选择“student_name_”作为每行的行标题,之后,单击“下一步”,如图5.4所示的,从“ColumnGroup 1”处选择“subject”作为每列的列标题,再单击“下一步”,如图5.5,在“Date”处选择“grade_”作为表中的数据,如图5.6,对每个学生的成绩进行求和,如图5.7所,显示每个学生的总成绩,不显示每科的总成绩。
1.1跟我学JasperReports报表框架——iReport报表工具的应用详解1.1.1iReport报表制作工具的基本应用1、建立一个新的报表(1)选择文件菜单中的“开启新档”菜单项目单击工具栏的第一个工具“New Report”,新建一个报表,输入报表名称和定义报表的一些参数。
(2)设置该文档的属性在“预设尺寸”区内选择所要用的纸张及尺寸,在这里选择默认参数并输入名称为“我的第一个报表”。
选择文档的排版方式,“Portrait”是纵向排布,即我们常用的排布方式,选择“Landscape”表示横向排布,这适合于一行数据很多,超过平常一行的显示的情况。
(3)让本文档支持中文可以修改"i18n"选项卡中的“XML 编码”,默认参数为"UTF-8"(如果认为有必要可以手动输入"GB2312")。
填写或是选择XML编码,这是关系到你的XML支持的字符集的选择,请根据需要选择,比如需要你的XML文件支持中文,那么可以输入或是GBK,之后点击【OK】按钮,进入报表的设计界面。
如果没有见到,可以打开或者出现错误时如果以后还需要对属性进行修改,则可以采用下面的方式进入。
2、保存该报表文档最后产生出下面的结果3、第二次如果还需要打开找到上次保存的文件名称,将加载目标文件(*.jrxml)4、在iReport中建立数据库连接仅显示静态文本的报表是没有什么用的,要连接数据库显示动态内容才有用,这里我们就演示一下,如何实现在客户端(不是Web中)发布报表页连接数据库生成动态报表的目的。
如何利用JasperReport 的API,在Web中发布动态报表,后面将再介绍。
(1)添加JDBC的驱动首先把SQL Server 2000连接Java的驱动包放入iReport组件所在目录的lib中,这样iReport组件才可以使用数据源,本示例计划采用JDTS的JDBC驱动程序,因此应该将jtds-1.2.jar拷贝到IReport的lib目录下。
一、iReport软件安装步骤。
(默认安装即可)1、在安装iReport之前,先把jdk的环境变量配置好!否则iReport不能用,这是因为iReport是用纯java写的。
2、开始安装,双击iReport-4.0.2-windows-installer.exe3、点击next4、点击I Agree5、选中iReport,点击Next6、可以更改路径,点击Next7、剩下步骤,按照默认安装,安装完成!二、工具使用,新建模板、调整样式。
设计一个最简单的报表1、新建一个A4竖行的jrxml模版,如下图,点击Open this Template2、选择保存路径,点击下一步3、点击完成进入如下图,就可以编辑报表了4、开始编辑报表,如给报表添加一个标题“报表的标题”,在组件面板里将Static T ext 用鼠标直接拖到Title区域中将标题组件拖到合适的大小,也可以编辑字体等。
但是一定要在Title 区域。
5、用同样的办法,可以将需要的组件拖到报表模版中。
其中常用的StaticText是静态的,TextField组件是动态的。
6、如下图,是一个做好的报表。
其中$F{region_name},$F{ip},$F{volume}和javaBean的属性名字应一致,包括大小写,否则会找不到这个字段。
另外$V{index}是报表中自定义变量。
其中,可以查看属性配置,例如region_name,又如,自增变量index,如下还可以进行编辑表达式,7、最终编辑的ireport文件,就是一个xml文件8、预览9、JasperCompier再把这个xml文件编译成jasper文件,进行加载。
用jasper的jar类库把数据以报表的形式展示出来。
也可以导出成html、excel、cvs、pdf等各种格式。
10、导出pdf,需要设置属性和,否则中文会乱码。
11、也可以手工在iReport中编译成.jasper文件,然后在程序中加载.jasper文件。
ireport summary 用法I. IntroductioniReport是一个开源的报表生成器,它是基于JasperReports库开发的一个可视化报表设计工具。
它可以帮助用户快速地创建各种类型的报表,包括表格、图形、交叉表、子报表等。
iReport支持多种数据源,包括数据库、XML文件、CSV文件等。
II. Installation1. 下载iReport用户可以从iReport官网上下载最新版本的软件安装包。
下载完成后,用户可以直接双击安装包进行安装。
2. 安装Java环境在安装iReport之前,需要先安装Java环境。
用户可以从Oracle官网上下载最新版本的Java运行时环境(JRE)或Java开发工具包(JDK),并按照提示进行安装。
III. Getting Started1. 打开iReport打开iReport后,用户会看到一个欢迎界面。
在这个界面中,用户可以选择创建新报表、打开已有报表或者查看最近使用的报表。
2. 创建新报表要创建新报表,用户需要点击欢迎界面中的“Create New Report”按钮。
然后,在弹出的对话框中选择数据源,并设置相关参数。
3. 设计报表在数据源设置完成后,用户就可以开始设计报表了。
在iReport中,用户可以使用各种组件来构建自己想要的报表。
例如,用户可以添加文本框、图像、表格、图形等组件,并设置它们的属性。
4. 预览报表在设计完成后,用户可以点击工具栏中的“Preview”按钮来预览报表。
在预览界面中,用户可以查看报表的效果,并进行调整。
5. 导出报表当报表设计完成后,用户可以将其导出为各种格式的文件,例如PDF、HTML、Excel等。
要导出报表,用户需要点击工具栏中的“Export”按钮,并选择相应的格式。
IV. Advanced Features1. 子报表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)2.3、运行(Run)将文件下载到本地解压后,您可以直接双击iReport.exe或者iReport.bat来运行程序。
注:在本文中iReport的版本是3.0.0。
三、报表结构在本章中我们将分析一下报表的结构,看一下报表中每一部分的作用是什么,以及在生成报表的时候每一部分将产生什么样的效果。
栏(Bands)报表被垂直分成若干个部分,每一个部分我们叫它“band”。
每一个band都有自己的特性,在报表生成的时候有些会打印一次,有些会打印多次。
如下图。
接下来我们就对每一种类型的band分别进行介绍。
Title Band:title 段只在整个报表的第一页的最上面部分显示,除了第一页,不管报表中有多少个页面也不会再出现Title band 中的内容。
目录 目录 .................................................................................................................................................. 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