jaspersoft+iReport+Designer+4.5.0教程
JasperReport 与iReport 的配置与使用

JasperReport 与iReport 的配置与使用1.JasperReport 与iReport 简介1.1 JasperReport 简介JasperReport 是一款报表打印组件,是开放源代码组织 中的一个java 报表打印工程,在我写这篇文章时,JasperReport 的最新版本是0.5.2 版,JasperReport 的最新版本可以从/index.html 下载得到。
JasperReport 适合用来做WEB 应用程序与Java Application 的报表打印组件,而且关键的一点是:JasperReport 是免费的!1.2 iReport 简介iReport 也是开源组织 中的一款免费软件,其主要作用是用来以可视化的方式设计生成JasperReport 所使用的报表格式文件,因为JasperReport 本身并未提供很好的可视化报表设计工具,iReport 的出现正好弥补了这个缺陷。
本文写作时的iReport的最新版本是0.3.0,iReport可以从 下载得到,注意下载的iReport 一定要与你所使用的JasperReport 版本相匹配,当然您也可以更新iReport 中所使用的JasperReport 组件,后面的文章中会有详细的介绍。
2.安装与配置2.1 JDK 的安装与配置2.1.1 JDK 的下载与版本选择JDK的最新版本可以从SUN的官方网站上下载得到, JDK 共分为3 个版本,J2ME,J2SE,J2EE,因为是在计算机上使用,我们需要下载使用 J2SE SDK,如果您的计算机是用来做软件开发,需要下载J2SE SDK,如果是用来运行已经编译好的JAVA 程序的,可以只下载J2SE JRE 即可。
下载JDK 时SUN 公司会要求你同意一个JDK 的使用许可协议,选接受协议后,会出现选择适合不同的操作系统平台使用的JDK 版本选择的界面,您可以根据自己使用的操作系统平台选择适合的JDK 版本。
Jasper + ireport 集成报表到Web应用,操作说明

北京xxxxxxxxx公司JasperReport + ireport集成报表到Web应用操作说明郝建柱2011/2/24第一部分,下载与安装Ireport官网:/,从这里可以下载到下载后的文件名安装:没什么注意的,一路回车就好了第二部分,ireport与JasperReport简单说明1,ireport,是一个制作报表的工具,用其设计报表样式2,JasperReport,是在程序里操作ireport报表的一套类库先简单介绍,以下详细说明第三部分,使用ireport制作报表以ireport3.7.6为例,依次选择“文件–》New…”出现下图在接下来出现的对话框中选择保存位置就好了。
建好的报表分这样几个部分,下面依次说明Title : 报表标题,也就是在报表首页出现的Page Header : 报表每页的页头,Page Footer页脚Column Header : 列头,Column Footer 列脚Detail : 对数据源进行循环显示Summary : 汇总,也就是在报表最后一页出现的不需要的部分可以在ireport左边删掉,如下图示接下来以Oracle数据库的scott用户中DEPT表为例,制做一个简单的报表1,设置报表语言在报表边缘外单击,在ireport右边的属性面板中找到Language属性,设置为Java,如下图示2,以数据库为报表的数据源,显示简单的报表首先,把oracle的jdbc驱动引到ireport里,具体做法为:点击:工具-》选项,找到Classpath选项卡,按下图操作找到oracle的JDBC,添加进来就好了然后,点击ireport工具栏上的这个按钮在弹出的窗口中点new按向导,建一个数据源,注意,这个数据源我们在ireport里设计报表用的,与程序并没有关系接下来点工具栏上这个在弹出的窗口中写查询语句,如下图示点OK后,在ireport左边的面板上Fields下边就有了sql所查出来的列,如图现在只要把Fields下边的,将来要显示字段拽到报表设计器中上Detail部分,就好了,注意:把Field拽到Detail中后,在Column Header会自动出现对应的列头,只要双击,就可以写中文了接下来从ireport右边的组件面板中找到Static Text控件,拽到Title里,双击就可以输入文字,结果如下注意:这里所有的Static 和Field,需要在右边的属性面板中,逐一设置两个属性,如图这是为了将来把报表集成到程序里之后,让其在页面上显示中文点击就可以看到结果一般查询都是有条件的,刚才写的sql是查全部的,现在写带查询条件的sql,具体做法为:在ireport窗口左边的面板里,找到Parameters右击,添加Parameter,如图选中刚才添加的这个参数,在右边的属性面板中给其设置名字,比如叫parDname修改刚才写的sql为这样的简单说明红色的部分:在ireport里,用$P{参数名}来取参数,这个参数以后可以从程序里传进来,上边的$P!{parDname},多了一个!号,表示,把接来的参数作为字符串拼到sql中,如果去掉!号,写成$P{parDname},就表示SQL参数,相当于在JDBC中写select * from dept where dname like ?这样就创建了带条件的查询3,使用Variable(变量)做简单的汇总以统计查询结果的总条数,和总人数为例注:在scott的dept表里没人部门人数一列,在此用部门编号来代替在ireport左边找到Variables点右键,添加两个Variable添加后,在右边的属性面板分别给两个变量起名,varPcount (统计总人数),varRecordCount(统计总记录数)在属性面板上,对varPcount设置,如图这几个属性一看就清楚其作用了,Reset type:Report是对事个报表做统计在Variable Expression里选择要统计的Field名,如图在属性面板上,对varRecordCount配置,如图在Calculation属性中,选择count,表示统计数量因为是数量,所以,Variable Expression里随便选一列就行对比:在没有分组过的sql里select count(*)和selectcount(deptno)的结果是一样的配置好好,将两个Variable从左边拽到报表中对应位置就好了,可参照下图预览后就可以看到结果了4,图表的显示,在此,以显示部门人数为例,做一个图表首先给报表添加一个数据集,操作如图示起名为dsPcount按向导完成数据集的创建,之后配置数据集,给数据集添加参数,如图起名为dsParDname在创建好的数据集上右键-》Edit Query,添加查询条件然后在从右边的组件面板中拽一个Chart控件到Summary部分,选择一个样式后,点OK,在接下来的向导中,第一步选择刚创建的数据集,dsPcount,第二步中,选择Key,Value,分别写两个按钮,选择要显示的键和值完成后,在生成的图表上右键-》Chart Data,在DataSet标签上下边做如下配置在Parameters标签中这样配置在Dataset parameters name,选择数据集的参数,在Value expression里,选择主报表定义的参数在Detail标签中,这样配置这样,显示图表的操作就完成了,预览就可以看到效果了第四部分,把报表集成到Web应用程序中用MyEclipse新建一个Web Project,在WebRoot下新建一个reports文件夹,用来放ireport生成的jasper文件找到前边保存ireport报表的路径,报表在预览后,生成jasper 文件,如图把这个deptReport.jasper文件复制到Web项目里的reports 文件夹中导入JasperReport的包,包可以从以下路径找到Ireport安装路径\iReport-3.7.6\ireport\modules\ext把这里所有的包引到Web项目里,引入oracle的jdbc驱动,接下来进行编程,以Servlet为例1,生成报表并且以HTML形式在网页上显示Servlet的主要逻辑代码如下:request.setCharacterEncoding("utf-8");// 接收查询参数,将来这个参数就是我们在报表中定义的parDnameString deptName = request.getParameter("dname");// 报表文件路径,我们用ireport做的jasper文件路径// JasperReport需要jasper文件的真实路径String reportPath = request.getSession().getServletContext().getRealPath("/reports/deptReport.jasper");// 报表参数,jasper文件可能不只一个参数// 在程序里,用一个Map对象,向jasper文件传递他需要的参数Map reportParameters = new HashMap();reportParameters.put("parDname", deptName);// 报表连数据库所用的数据连接// 因为报表直接以数据库为数据源,所以在这里需要给jasper文件一个jdbc连接Connection con = null;// 清空响应流response.reset();// 设置输出格式response.setContentType("application/html");// 创建JDBC连接Class.forName("oracle.jdbc.OracleDriver");con = DriverManager.getConnection("jdbc:oracle:thin:@oracle10:1521:oracle", "scott", "tiger");// JasperReport提供的类,用于生成一个HTML文件JasperRunManager.runReportToHtmlFile(reportPath, reportParameters, con);response.sendRedirect(request.getContextPath()+ "/reports/deptReport.html");/** 如果要在网页上显示PDF文件,把前两句去掉,放开这段注释* ServletOutputStream out = response.getOutputStream();* //从jasper报表生成PDF字节* byte[] pdfBytes = JasperRunManager.runReportToPdf(reportPath, reportParameters, con);* //设置输出内容长度* response.setContentLength(pdfBytes.length); //将PDF写入报表* out.write(pdfBytes, 0, pdfBytes.length);* out.flush();* out.close();*/// 关闭数据连接con.close();这里只写出逻辑代码,实际用的时候,加上各种异常的处理。
jaspersoft+iReport+Designer+4.5.0教程

前言本教程所使用实例均来自jaspersoft iReport软件自带的Samples。
在开始本教程之前,请先运行Sample 数据库,如下图所示,相关案例也可在相应的菜单中点击打开。
软件安装,配置设置请见相关教程。
图11.简单报表查询1.1新建报表依次单击“文件/New…”,弹出窗口如图1.1所示:图1. 1选择”Blank A4”,单击”Open this Template”,如图1.2所示:图1. 2在“Report Name ”输入“SimpleReport ”,依次单击“下一步/完成”,得到一个新的report ,如图1.3所示:图1. 31.2设置数据集单击数据库链接按钮,弹出”Report query ”窗口,本文将使用系统自带的HSQLDB 数据库(如图1.4所示),在弹出窗口中输入查询语句,如图1.5和1.6所示。
图1. 4图1. 5图1. 6单击”OK”按钮完成数据集设置。
1.3 Report设计①设置Title在主窗口的设计窗口开始设置。
首先从“组件面板”拖动一个”Static Text”控件到设计窗口的Title Band,并双击输入文字,如图1.7所示。
图1. 7②设置Detail从左侧导航面板“Report Inspectpr”的“Fields”中拖动要显示的属性字段到设计窗口的Detail Band,如图1.8所示。
图1. 8Detail Band中的字段在制成Report时将循环显示,而Column Header是列标题,只显示一行,本文不希望显示列标题,因此删除Column Header中的标签框。
调整Detail中的Text Field位置和大小,如图1.9所示:图1. 9③设置Page Rooter从组建面板中拖动“Pager number”和“Total pages”到设计面板的Page Rooter内,选中设计面板中的“Pager number”控件,如图1.10所示。
ireport 4.5初级教程之参数(Parameters)

ireport 4.5初级教程之参数(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}。
iReport 4.5 学习笔记

iReport 学习笔记版本:iReport 4.5.0 2012年六月简介 (3)1 iReport介绍 (3)1.1概述 (3)1.2 运行环境 (4)1.3下载地址 (4)2 准备 (4)2.1 数据库连接方法1 (4)2.2数据库连接方法2 (6)3 开始制作表 (8)3.1通过第一张简单表了解iReport各个部分功能 (8)3.2 iReport中中文显示问题 (12)4 iReport中各个窗体介绍 (13)4.1 左侧边栏介绍 (13)4.2中间栏 (13)4.3 组建介绍 (14)5 iReport表制作 (15)5.1简单报表 (15)5.2 子报表 (16)5.3 Table类型报表 (27)5.4 iReport中自动换行的设置 (28)6 iReport中其他 (29)6.1 Sql语句的编写IN语句 (29)7 Dorado7中iReport配置 (30)简介公司业务需要用到iReport工具进行报表开发。
所以自学了下。
现在把自己学到的东西几下来分享下,因为这个方面的只是在网上很少,很乱。
下面做一个小的总结,主要是自己的理解加上网上前辈的总结。
接触的iReport是从4.1.0开始的,我现在用的是4.5.0的版本制作。
iReport从3.7.5之后版本已经与之前有了很大的不同,所以如果你用的还是4.0以前的版本的话可能制作过程会存在差异。
下面开始……1 iReport介绍1.1概述iReport是为JasperReports设计的强大的,直观的,易于使用的可视化报表设计器采用纯Java开发。
这个工具允许用户可视化编辑包含charts,图片,子报表等的复杂报表。
iReport 还集成了JFreeChart图表制作包。
允许用户可视化地编辑XML JasperDesign文件。
用于打印的数据可以通过多种方式获取包括:JDBC, TableModels, JavaBeans, XML,Hibernate(支持HQL 查询语言), CSV等。
iReport_4.5.1 使用

iReport 4.5.1 使用说明目录目录1.报表设计器使用基础 (1)1.1.系统配置 (1)1.1.1.oracle数据库驱动 (1)1.1.2.sqlserver数据库驱动 (3)1.1.3.向工程中复制Jar包 (3)1.2.创建新报表 (3)1.3.创建数据连接 (6)1.4.设置查询语句 (9)1.5.报表各部分组成 (10)1.6.制作明细表 (11)1.6.1.添加表头 (11)1.6.2.添加字段 (12)1.6.3.添加列名 (13)1.6.4.设定字体 (13)1.6.5.设定边框 (14)1.6.6.设定栏高 (14)1.6.7.设置字段域 (15)1.7.参数的使用 (16)1.7.1.添加参数 (16)1.7.2.程序中传递参数 (17)1.7.3.报表模板接收参数 (17)1.8.自定义变量的使用 (18)1.8.1.顺序号 (18)1.8.2.小计 (19)1.8.3.合计 (21)2.报表设计器进阶 (22)2.1.分组报表 (22)2.2.图形报表 (27)2.3.子报表 (32)2.3.1.制作父报表 (32)2.3.2.制作子报表 (32)2.3.3.子报表参数设置 (38)2.3.4.子报表自适应行高 (39)3.特殊报表设计 (41)3.1.父子表关联 (41)3.2.统计报表 (42)3.2.1.通用统计报表 (42)3.2.2.动态统计报表 (44)1.报表设计器使用基础iReport安装完毕后,会在桌面放置一个图标,双击此图标,即可运行iReport报表设计器。
报表设计器主界面如下图。
1.1. 系统配置1.1.1.oracle数据库驱动如果需要为Oracle数据库中的数据制作报表,则需要先将Oracle数据库驱动jar包加入到iReport中。
将ojdbc14.jar复制到C:\Program Files\JasperSoft\iReport-4.5.1\ireport\libs文件夹下。
Jaspersoft使用文档

Jaspersoft使用文档1:安装jaspersoft.不做介绍。
2:创建文件。
打开菜单:文件—>new…选择Blank A4,点击Launch Report Wizard按钮确定.点击下一步后面连续点击”下一步”,完成文件的创建。
一般情况下,只留Detail 1 模块即可,其它都可删除。
特殊标签可能用到Page Header和page Footer删除之后,如下图所示,并且在属性栏设置文件的高、宽。
然后根据开始你的标签布局设计模版:(注意,所有的字体显示,要选择上图那3个属性值,否则会出现乱码)(默认打印出来是不会显示边框的,选中Rectangle标签,右击—>Padding and Broders )预览成功之后会生成一个.jaspersoft文件,用来java代码解析使用.Java代码调用jaspersoft1):导入jar<dependency><groupId>jasperreports</groupId><artifactId>jasperreports</artifactId><version>5.6.0</version><classifier>jasperreports</classifier></dependency>2):把要打印的模版存到对应的项目目录下3):模版里面没有sql版本事例:public void printNewExpress(HttpServletRequest request,String no, HttpServletResponse response) throws JRException, InstantiationException, IllegalAccessException, IOException{Collection<Object> storesQualitys = newArrayList<Object>();List<Pick> pick=pickService.printExpressSingle(no);for (Pick detail : pick) {String customerCode=detail.getCustomerCode();String customerCompany=detail.getCustomerCompany();String customerMobile=detail.getCustomerMobile();String customerAddress=detail.getCustomerAddress();String customerZipcode=detail.getCustomerZipcode();String customerLocation=detail.getCustomerLocation();StringclassPath=Thread.currentThread().getContextClassLoader().getResource("" ).getPath();String templatePath="";ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();Resource head =resolver.getResource("classpath:/com/iceasy/wms/console/controller/xls/ template/printCarrierReport_Fed.jasper");templatePath =head.getFile().getAbsolutePath();//封装报表参数HashMap<String, Object> params = new HashMap<String, Object>();//获取报表模板StringfileURL="com"+System.getProperty("file.separator")+"iceasy"+System.getP roperty("file.separator")+"wms"+System.getProperty("file.separator")+"console"+System.getPrope rty("file.separator")+"controller"+System.getProperty("file.separator")+"xls"+System.getProperty("file .separator")+"template"+System.getProperty("file.separator");String templatePathImages =classPath +fileURL+"checkbox_cheked.png";params.put("image_url", templatePathImages);//编译成JasperPrint对象byte[] bytes = JasperRunManager.runReportToPdf(templatePath, params, new JRBeanCollectionDataSource(storesQualitys));response.setContentType("application/pdf");response.setContentLength(bytes.length);ServletOutputStream out;try {out = response.getOutputStream();out.write(bytes, 0, bytes.length);out.flush();out.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}3):模版里面有sql版本事例:public void printPickingList(HttpServletRequest request,String no, HttpServletResponse response) throws JRException, InstantiationException, IllegalAccessException, SQLException, IOException{//获取报表模板ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();Resource head =resolver.getResource("classpath:/com/iceasy/wms/console/controller/xls/ template/printPickingList.jasper");Resource body =resolver.getResource("classpath:/com/iceasy/wms/console/controller/xls/ template/printPickingDetailList.jasper");SqlSession sqlSession = sqlSessionFactory.openSession();Connection connection = sqlSession.getConnection();try {String templatePath = head.getFile().getAbsolutePath();String templatePath_Index = body.getFile().getAbsolutePath();//封装报表参数HashMap<String, Object> params = new HashMap<String, Object>();params.put("pickListJasper", templatePath_Index);params.put("no", no);byte [] bytes = JasperRunManager.runReportToPdf(templatePath, params, connection);response.setContentType("application/pdf");response.setContentLength(bytes.length);ServletOutputStream out;out = response.getOutputStream();out.write(bytes, 0, bytes.length);out.flush();out.close();} finally {sqlSession.close();}}(注:有些标签要使用特定的字体,服务器上面可能没有,可以把对应的字体打成jar 包上传到私服)。
iReport简单使用方法图文教程

iReport简单使⽤⽅法图⽂教程iReport是⼀个能够创建复杂报表的开源项⽬,它100%使⽤Java语⾔编写,是⽬前全球最为流⾏的开源报表设计器,由于它丰富的图形界⾯,你能够很快的创建出任何⼀种你想要的报表。
iReport 是为JasperReports Library和JasperReports Server设计的报表可视化设计器。
iReport的遵循AGPL⾃由开源协议,在开源社区发布。
根据iReport和Jasper Studio的维护公告,⾃iReport版本5.5.0之后,终⽌新功能的开发。
在2015年12⽉31⽇以前,对iReport的维护仅限于严重缺陷的修复,不会再增加新的功能。
新建报表,依次单击“⽂件/New…”,弹出窗⼝选择”Blank A4”,单击”Open this Template”依次单击“下⼀步/完成”,得到⼀个新的report单击”OK”按钮完成数据集设置从“组件⾯板”拖动⼀个”Static Text”控件到设计窗⼝的Title Band,并双击输⼊⽂字从左侧导航⾯板“Report Inspectpr”的“Fields”中拖动要显⽰的属性字段到设计窗⼝的Detail BandDetail Band中的字段在制成Report时将循环显⽰,⽽Column Header是列标题,只显⽰⼀⾏,本⽂不希望显⽰列标题,因此删除Column Header中的标签框。
调整Detail中的Text Field位置和⼤⼩⾄此设计⼯作基本完成,此时可以将不显⽰的⾯板删除(单击此⾯板,右击选择“删除”)或调整各Band的标尺将其隐藏。
单击“Preview”可进⼊预览页⾯选中导航⾯板”Report Inspector”的” Parameters”,右击选择添加参数到此这篇关于iReport简单使⽤⽅法图⽂教程的⽂章就介绍到这了,更多相关iReport图⽂教程内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.前.言..本教程所使用实例均来自jaspersoft iReport软件自带的Samples。
在开始本教程之前,请先运行Sample 数据库,如下图所示,相关案例也可在相应的菜单中点击打开。
软件安装,配置设置请见相关教程。
图 11.简单报表查询1.1新建报表依次单击“文件/New…”,弹出窗口如图1.1所示:图1. 1选择”Blank A4”,单击”Open this Template”,如图1.2所示:图1. 2在“Report Name”输入“SimpleReport”,依次单击“下一步/完成”,得到一个新的report,如图1.3所示:图1. 31.2设置数据集单击数据库链接按钮,弹出”Report query”窗口,本文将使用系统自带的HSQLDB数据库(如图1.4所示),在弹出窗口中输入查询语句,如图1.5和1.6所示。
图1. 4 图1. 5图1. 6单击”OK”按钮完成数据集设置。
1.3 Report设计①设置Title在主窗口的设计窗口开始设置。
首先从“组件面板”拖动一个”Static Text”控件到设计窗口的Title Band,并双击输入文字,如图1.7所示。
图1. 7②设置Detail从左侧导航面板“Report Inspectpr”的“Fields”中拖动要显示的属性字段到设计窗口的Detail Band,如图1.8所示。
图1. 8Detail Band中的字段在制成Report时将循环显示,而Column Header是列标题,只显示一行,本文不希望显示列标题,因此删除Column Header中的标签框。
调整Detail中的Text Field位置和大小,如图1.9所示:图1. 9③设置Page Rooter从组建面板中拖动“Pager number”和“Total pages”到设计面板的Page Rooter内,选中设计面板中的“Pager number”控件,如图1.10所示。
图1. 10此时可以查看该控件的属性,在属性面板中找到“Text Field Expression”属性,将其改为"Page "+$V{PAGE_NUMBER}+" of "。
至此设计工作基本完成,此时可以将不显示的面板删除(单击此面板,右击选择“删除”)或调整各Band的标尺将其隐藏。
完成后如图1.11所示。
图1. 11单击“Preview”可进入预览页面,如图1.12所示。
图1. 12最后保存文件。
2.使用Parameters 和Variables2.1新建报表参照1.1,新建报表”PandV”。
2.2 添加Parameters选中导航面板”Report Inspector”的” Parameters”,右击选择添加参数,如图2.1所示。
图2. 1在属性面板中修改“parameter1”的”Name”属性为” Country”,可在“Description”中添加备注,如” I.e. Italy”。
此时”Report Inspector”面板的” Parameters”中增加了一个新的变量”Country”。
图2. 22.3设置数据集参照1.2,查询语句为:select * from orders where shipcountry like $P{Country}2.4添加Variabl es选中导航面板”Report Inspector”的” Variables”,右击选择添加变量,如图2.3所示。
图2. 3添加“FREIGHT_IN_PAGE”变量,将其”Caculation”设为”Sum”,”Reset type”设为”Page”,如图2.4所示。
图2. 4单击属性”Variable Expression”右的弹出按钮,弹出窗口如图2.5所示。
双击FREIGHT,输入框自动键入$F{FREIGHT}。
单击“确定”按钮完成设置。
图2. 5继续添加变量”FREIGHT_IN_REPORT”,将其”Caculation”设为”Sum”,”Reset type”设为”Report”,”Variable Expression”为$F(FREIGHT)。
2.5 Report设计拖动三个静态文本,并输入文字;拖动“Parameters”中的”Country”到Title Band。
调整控件大小和文字尺寸,如图2.6所示。
图2. 6拖动”Fields”中字段到Detail Band中,并修改列标题,如图2.7所示。
图2. 7分别在”Column Footer”和”Pager Footer”中添加一个静态文本,字体设为12号,右对齐,如图2.8所示。
图2. 8分别拖动“FREIGHT_IN_PAGE”和” FREIGHT_IN_REPORT”到”Column Footer”和”Pager Footer”中,如图2.9所示。
图2. 9如要”Column Footer”和”Pager Footer”中的行与其它背景颜色不同,可修改控件属性,如图2.10所示。
图2. 10删除或隐藏不需要的Band,单击”Preview”进行预览,在弹出窗口中输入所需的参数数值,如Italy。
图2. 11预览效果如图2.12所示。
图2. 12最后保存文件。
3.使用Groups功能3.1新建报表参照1.1,新建报表” GroupsReport”。
3.2设置数据集参照1.2,查询语句为: select * from orders order by shipcountry 3.3 添加Group选中”Report Inspector”中的”GroupReport”,右击选择添加Group。
图3. 1在弹出窗口中设置”Group name”为”Country_First_letter”,并选中单选按钮”group by the following expression”,设置为($F{SHIPCOUNTRY} == null ||$F{SHIPCOUNTRY}.length() == 0) ? "" : $F{SHIPCOUNTRY}.substring(0,1)。
选择下一步,再点击完成。
继续添加Group ,命名为”Country”,选中”Group by the following report object”,并选择下拉列表中的”shipcountry”。
3.4添加Variabl es参照2.4,添加变量”First_Letter”,”Reset type”设为”Group”,”Variable Expression”设为($F{SHIPCOUNTRY} == null ||$F{SHIPCOUNTRY}.length() == 0) ? "" : $F{SHIPCOUNTRY}.substring(0,1)。
3.5 Report设计①拖动两个静态文本到Title Band,并修改文字。
图3. 2②从”Variables”中拖动”First_Letter”到” Country_First_letter Group Header1”,字号为52,”Backcolor”为[249,170,170],选中”Opaque”,”Evaluation Time”设为”Auto”;从”Fields”中拖动”SHIPCOUNTRY”到”Country Group Header1”中,字号24;并拖动几个字段到Detail Band,如图3.3所示。
图3. 3③拖动一个静态文本到”Country Group Footer”;从”Variables”中拖动”First_Letter”到” Country_First_letter Group Footer”,修改其”Text Field Expression”为"Total freight of orders in country starting with the letter " + $V{First_Letter}。
更改二者颜色。
图3. 4④新建两个变量”FREIGHT_1”和”FREGHT_2”,属性如图3.5和3.6所示。
图3. 5图3. 6从”Variables”中拖动FREIGHT_1到”Country Group Footer”,拖动FREIGHT_2到”Country_First_letter Group Footer”中,修改背景色。
完毕后点击预览,如图3.7所示。
图3. 74.使用Crosstabs4.1新建报表参照1.1,新建报表” CrosstabsReport”。
4.2设置数据集参照1.2,查询语句为: select * from orders4.3 Report设计①拖入两个静态文本框和一个Line到Title Band。
图4. 1②加入页码拖动”Page number”和”Total pages”到设计窗口的Page Footer,并修改字段,如图4.2所示。
图4. 2③加入Crosstabs从控件面板中拖动Crosstabs控件到设计窗口的Summary Band中。
弹出”New Crosstab”窗口,点击”下一步”,设置row groups,如图4.3所示。
图4. 3设置好后,点击下一步,设置cloumn groups。
图4. 4设置好后,点击下一步,设置measure。
图4. 5设置好后,点击下一步,设置表格显示的颜色样式。
图4. 6 设置好后,点击完成。
此时设计窗口如图4.7所示。
图4. 7④修改日期格式选中Report Inspector中Summary的Column Groups的ORDERDATE,修改其属性,如图4.8所示:图4. 8也可直接修改xml:点击按钮”XML”,如图4.9所示。
图4. 9找到ORDERDATE,将$F{ORDERDATE}改为(new SimpleDateFormat("yyyy")).format($F{ORDERDATE}),并修改class属性,如图4.10所示。
图4. 10找到ORDERDATE1,将$F{ORDERDATE改为(new SimpleDateFormat("yyyy-MM")).format($F{ORDERDATE}),并修改class属性。
完毕后,点击预览如下图所示:图4. 115.使用Subreport5.1新建报表参照1.1,新建报表” SubreportMaster”。
5.2设置数据集参照1.2,查询语句为: select distinct shipcountry from orders order by shipcountry5.3 Report设计①拖动两个静态文本到Title Band,并修改文字。