`

(转)用IReport3.7.2开发Web报表(二)——IReport使用

 
阅读更多

6、手工编写一个例子
6.1、需求
前面我们已经介绍了IReport的开始,现在我们做一个例子。假设我们要做一个会议通讯录的报表,要求按照参会人的单位分组显示,即同一个单位的参会人员显示在一起,而且每个人占用一行,相邻两个人之间用不同的背景进行间隔。要求在标题下面打印会议名称,会议名称通过参数传入。
6.2、绘制
首先你需要获得Javabean中的属性。通过在主界面中选择如下图所示图标,图中用红圈圈住,并用红色箭头指向。
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
此时弹出Report Query窗口(如下图所示)。
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
选择”JavaBean Datasource“标签,在”Class name“中输入作为数据源的Java类,要求输入完整的类名,要包含包名。因为我建了一个叫做report.CAddressList的Java类(建立方法请看后篇),并且此类里面定义了id、name、nationality、phone、post、sex、unit属性,因此输入完类名后直接点击”Read attributes“按钮就可以获得类里面的这些属性了,选择需要加入报表的字段,然后点击”Add selected field(s)“按钮,将它们加入到窗口最下面列表中,最后选择”OK“按钮,这些Javabean中的属性就加入到”Report Inspector“中的”Fields“节点下,如下图所示:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
要使在”Report Query“窗口中能够读取你自己定义的Javabean的属性,必须将你定义的Javabean放置在IReport的Classpath路径可以寻找的目录中。
下面来讲一下如何让IReport支持自己定义的类。
选择主菜单“工具”下面的“选项”子菜单,如下图所示:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
出现“选项”对话窗口,如下图所示:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
在“选项”窗口中选择“Classpath”标签,将要添加的自己的类所在的目录添加进来即可。然后选择“确定”按钮。
配置好数据源字段后,我们就来开始绘制报表,先要调出组件面板,在组件面板上有很多用来绘制报表的控件,默认情况下组件面板是显示的,如果你的组件面板没有显示,可以通过如下方法调出:
在主菜单”窗口“下选择”组件面板“(如下图所示),或者使用快捷键”ctrl+shift+8“。
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
这时在屏幕右边(一般在这边)会出现如下图的面板区域。
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
在组件面板中可以选择绘制报表时需要的任何控件,例如线条、矩形框、静态文本标题、图片等等。
下面我们首先绘制一个报表标题,在组件面板中选择”Static Text“,然后拖拽它到报表设计器的Page Header Band,并双击它编辑文字为”会 议 通 讯 录“,每个汉字自己使用空格做了一点间隔,好看而已,不是必须的。这样在报表的每一页都将出现报表名称。如果你只是想在报表第一页显示报表名称,其它页面上不显示,想想看如何处理?对了,将其放置在Title Band中就可以了。
我们将一个控件拖入报表设计器后,就可以在其中拖动位置来布局将来的显示位置,IReport是即看即所得的设计器,因此设计时你如何放置,显示时就是如何显示的。
仅仅将控件拖入报表设计器还不能完全达到我们的目的,我们还需要设置其属性,特别是对于显示的内容是中文的,而且将来要生成PDF文件的,设置相关的属性就更加重要了。我们选中拖入的控件“Static Text”,这是打开其属性面板。属性面板如果没有出现在主窗口中,可以同样在主菜单”窗口“中选择”属性“菜单来打开,属性面板的界面如图:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
这里对于一个”Static Text“控件关键要设置如下几个属性:
1)Font name:在其中选中”宋体“,为了保证报表将来在任何计算机上都可以正常显示,最好使用统一的”宋体“,否则将来客户机器上没有这个特殊字体就会很难看了。
2)Size:设置字体大小。因为此处是报表标题,因此我选用了大字体,选择24。
3)Bold:设置字体为粗体。
4)Pdf Font name is now deprecated:在此选择”STSong-Light“。为了将来导出成PDF可以正常显示汉字。
5)Pdf Embedded:选中它。为了将来导出成PDF可以正常显示汉字。
6)Pdf Encoding:选择”UniGB-UCS2-H (Chinese Simplified)“。为了将来导出成PDF可以正常显示汉字。
7)Horizontal Alignment:选择”Center“。因为我将此"Static Text"的大小拖拽成合页面一样宽。
8)Vertical Aligment:选择”Middle“。
最好效果如下图所示:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
再选择四个”Static Text“控件放置在Page Header Band中,分别设置其文本内容为”会议名称“、”第 “、”页 总“、”页“。并参考上面一样设置相关属性(这里略)。
打开”Report Inspector“面板。如果主窗口中没有此面板,还是到主菜单”窗口“下选择”Report Inspector“菜单即可。“Report Inspector“面板如下图所示:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
在这个面板中会分类列出”Style“、”Parameters“、”Fields“、”Variables“、”Scriptlets“、”Table Dataset“、”Title“、”Page Header“、”Column Header“、”XXX Group Header“(如果建立了分组就会出现它)、”Detail“、”XXXX Group Footer“(如果建立了分组就会出现它)、”Column Footer“、”Page Footer“、”Last Page Footer“、”Summary“、”No Data“、”Background“等节点。
因为按照需要,会议名称是通过参数传入的,因此我们需要在”Parameters“节点下面建立一个名为”meeting_name“的参数。建立方法如下:
1)选中”Parameters“节点,鼠标右键,选择”添加 Parameter“菜单,系统将建立一个”Parameter1“的参数。如下图:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人

2)选中”Parameter1“(默认情况下自动选中的),查看其属性面板。修改”name“属性为”meeting_name"。修改“Parameter Class”属性为“java.lang.String”,“Parameter Class”属性就是用来指定参数的数据类型,在IReport中,属性的类型都是Java的类。通过下列选择你需要的类型,也可以点击后面的“...”按钮直接输入java类。可以输入的java类是任意的,可以是Java JDK中包含的任何类,也可以是你定义的类。要使用自己定义的类,就必须将这些类所在的路径配置在Classpath中,配置方法参考前面描述。
现在我们回到“Parameters”的属性面板,在“Default Value Expression”属性中可以填入此参数默认的初始值,因为此参数的数据类型都是Java的类,因此此处要求如下这样写“new java.lang.String("江西省XXX公司年度大会")",就是说要new一个对象出来,不管是String类型还是Interger类型或者其它什么类型。
在”Description“属性中填入的是对参数的描述,如填写成”会议名称“,这样下次看到此参数时就可以指定此参数的用途了。
填写好的”meeting_name“的属性面板如下图所示:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
3)添加页码和总页数。
页码和总页数通过展开”Report Inspector“面板中的“Variables”节点,并从中拖拽就可以了。页码对应的变量是“PAGE_NUMBER”,其”Expression Class“是”java.lang.Integer“,”Evaluation Time“的值是”now“。总页数对应的变量是“PAGE_NUMBER”,其”Expression Class“是”java.lang.Integer“,”Evaluation Time“的值是”report“。“PAGE_NUMBER”是系统默认提供的,不需要我们手工建立。
到此我们的报表头已经绘制结束了,其布局如下图所示:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
接下来我们来绘制报表体,因为需求中要求按照参会人所在单位进行分组,将同一单位的参会人放在一起,因此我们先来建立一个分组。建立分组的方法如下:
1)选中”会议通讯录“,鼠标右键,选择”Add Report Group“菜单。如下图所示:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
2)出现”New Group Wizard“向导窗口(如下图所示),在”Group name“中输入一个用于表示本分组的名字,没有限制,我们这里输入”Unit Group“。选择”Group by the following report object“,并在下面的下列选择框中选择”unit“字段。”unit“字段就是Fields中的。
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
建立好分组后在”Report Inspector“面板中就会多出”unit group Group Header 1“和”Unit Group Group Footer 1“两个节点。其中”unit group Group Header 1“是分组的头,而”Unit Group Group Footer 1“分组的脚。它们中间就是”Detail Band“。
我们在”unit group Group Header 1“中放入矩形控件,放置方法是从组件面板中选择矩形控件,然后拖入放置在适当的位置。放置矩形控件是为了制做报表的边框、网格等。并放置一些静态文本”Static Text“控件和字段unit。字段unit从”Report Inspector“面板中的Fields中拖入。具体布局界面如下:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
还为矩形控件设置了背景颜色。矩形控件设置背景颜色的方法是,选中矩形控件,在其属性面板中修改”Backcolor“属性值。在字段unit外面也放置了一个矩形控件,但没有设置它的背景颜色,因为默认的背景颜色是白色。
另外,为了当数据在换页后不重新显示本表头,因此我们需要做个设置,在”Report Inspector“面板中选中”unit group Group Header 1“,在其属性面板中找到”Reprint Header“,并设置其值为选中,这样当分组数据跨页时,在第二页会重新打印表头。
下面将需要显示的字段如id、name、post、sex、nationality、phone,依次从”Report Inspector“面板中的Fields中拖入并对应放置在相应的表头下面。同时也为每个字段都配置一个矩形用于描绘网格线。其配置效果如下图所示:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
其中姓名对应的是$F{name},职务对应的是$F{post},性别对应的是$F{sex},民族对应的是$F{nationality},联系电话对应的是$F{phone},签名下面对应的只有一个矩形框。
序号的设想是每组的序号都会从1开始,因此我通过定义一个变量来实现。选中”Report Inspector“面板中的”Variables“节点,鼠标右键,选择“添加 Variables”菜单,如下图所示:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人

系统将在”Variables“节点新增一个“Variable1”,选中它,在属性面板中修改相应属性。
修改Name属性值为“group inner number”;
修改Variable Class属性值为“java.lang.Integer”,此处的内容也必须是Java类,可以是系统的类,也可以是自己定义的类;
修改Calculation属性值为“Nothing”,就是表明此字段不会自己增加。其可选的值有“Count”、“Distinct Count”、“Sum”、“Average”、“Lowest”、“Highest”、”Standard Deviation“、”Variance“、”System“、”First“;其中每种值的含义如下:

含义
Nothing 不做任何计算
Count 对记录集数进行循环累加,计算有多少条记录。
Distinct Count 对记录集数进行循环累加,计算有多少条记录。但忽略重复记录,即某个值已经统计过此处就不再统计
Sum 累加某字段(必须是数字类型)的总和
Average 计算某字段(必须是数字类型)总和的平均值
Lowest 返回某字段的最小值
Highest 返回某字段的最大值
Standard Deviation 返回表达式的所有值的标准方差
Variance 返回表达式收到值的变化
System 不做任何计算也没有任何价值
First


修改Reset type属性值为”Group“。Reset type属性可选的值有如下几种:

说明
none 任何时候不做重置操作
report 在报表创建时才进行变量初始化
page 在报表每页对变量进行初始化
column 在报表处理每个Column时就对变量进行初始化
group 报表每个分组对变量进行初始化

修改Reset Group属性值为”Unit Group"。
修改Increment type属性值为“Group”。其值可选同Reset type属性。
修改Increment Group属性值为“Unit Group”。
修改Variable Expression属性值为“$V{group inner number}。
修改Initial Value Expression属性值为”new Integer(0)"。
最终效果如下图所示:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
接下来来建立一个Scriptlets。选中”Report Inspector“面板中的”Scriptlets“节点,鼠标右键,选择“添加 Scriptlet”菜单,如下图所示:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
系统自动建立“scriptlet1”,通过其属性面板修改相关的属性值。
修改name属性值为“group inner number”。
修改Scriptlet Class属性值为“report.CIntegerIncrement"。report.CIntegerIncrement是我自己定义的一个Java类,具体定义请参考后续文档。
在unit Group Group Footer Band中放入二个静态文本,并从”Report Inspector“面板中的"Variables”节点中拖入一个“Unit Group_Count”的字段。这个字段是建立分组后由系统自动建立的,用于统计各个分组中记录数。其界面布局如下图所示:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
到此,报表的设计工作结束,我们来预览一下,点击设计界面中的”Preview“,如图中红色圈中的部分:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人
就可以预览报表效果了。
报表设计完毕,通过点击编译图标来生产可分发的jasper文件,其操作如图红色圈中部分:
用IReport3.7.2开发Web报表(二)——IReport使用 - 伏虎 - 追梦人

下一篇我将继续讲解如何编写程序调用报表。

换一张
分享到:
评论

相关推荐

    ireport3.7.2web开发必备jar包

    ireport3.7.2web开发必备jar包.iReport是一个能够创建复杂报表的开源项目,并且它能调用JasperReports库应用于任何一种java应用程序。本身是分布式的且由符合GNU通用公共许可的百分之百纯java编写。

    iReport3.7开发Web报表

    【IReport3.7开发Web报表】是一款基于Java的报表设计工具,专用于创建PDF、HTML和Excel格式的Web报表。这款工具在IReport3.7.2版本中进行了重大改进,采用了Netbeans框架,提供了更为友好的用户界面和更强大的功能。...

    struts2+ireport3.7.2 报表基本应用

    Struts2+iReport3.7.2报表基本应用是一个典型的Java Web开发中的报表生成场景,主要涉及两大核心技术:Struts2作为MVC框架处理前端请求和业务逻辑,iReport作为一个强大的报表设计工具,用于创建复杂的报表模板。...

    IReport3.7开发Web报表.pdf

    本篇文章将详细介绍如何使用IReport 3.7.2版本来开发Web报表。 首先,IReport是基于Netbeans框架构建的,这使得它对于熟悉Netbeans的开发者来说非常友好和直观。它的界面布局和操作方式与Netbeans相似,提供了中文...

    iReport web报表开发实例

    在Web环境中开发报表,首要任务是理解Web应用程序的架构和工作原理。这涉及到HTML、CSS、JavaScript以及服务器端技术如Java Servlets、JSP和Spring等。报表需要与Web页面交互,因此需要掌握如何将报表嵌入到Web应用...

    ireport+web进行报表开发

    总之,`iReport`是强大的报表设计工具,通过合理的配置和使用,可以实现Web环境下的复杂报表开发,同时解决中文显示问题,使得报表能够正确地展示各种语言的信息。在实际项目中,理解这些知识点并灵活运用,将有助于...

    iReport使用JavaBean作为数据源——最简单的示例

    3. **iReport设计报表**:iReport允许你使用JRXML(JasperReports XML)语言来设计报表布局。在"iReport的报表源文件(jrxml)"中,你会看到字段、表格、文本框等元素的定义,这些元素将与JavaBean的属性对应。通过`...

    JasperReport+iReport整合的Web报表开发

    ### JasperReport+iReport整合的Web报表开发 #### 1. JasperReport简介 JasperReport是一款功能强大且灵活的报表生成工具,它支持多种输出格式,包括PDF、HTML、XML、Excel(通过POI或JExcelAPI实现)和Rtf(通过...

    如何使用IReport3.5.1来制作报表模板

    【如何使用IReport3.5.1来制作报表模板】 IReport是一款强大的报表设计工具,尤其在配合JasperReports库时,能帮助开发者创建复杂的报表模板。以下将详细介绍如何使用IReport 3.5.1来创建报表模板。 **一、安装...

    iReport 报表、子报表、主从报表、合计、实例解析

    开发使用步骤(iReport4.1)... 2 4.1. JasperReport 和iReport的介绍... 2 4.1.1. JasperReport 简介... 3 4.1.2. iReport 简介... 3 4.1.2.1. iReport几个重要的概念... 3 4.1.2.2. iReport数据库连接的建立 ...

    Web报表开发技术-iReport开发技术实例

    本实例将深入探讨如何利用iReport进行Web报表开发。 一、iReport简介 iReport是Jaspersoft公司开发的一款基于Java的报表设计工具,支持WYSIWYG(所见即所得)编辑模式。它可以与Java EE(J2EE)应用服务器无缝集成...

    iReport 和 Jasperreport整合开发web报表向导2.doc

    【知识点详解】 1. **iReport与JasperReport的关系**: iReport 是 JasperReport 的一个可视化设计工具,用于创建 JasperReport 报表模板。它提供了直观的图形...掌握这些知识点,可以高效地构建和管理 web 报表。

    iReport 和 Jasperreport整合开发web报表向导

    结合提供的文档资源"iReport 和 Jasperreport整合开发web报表向导1.doc"、"iReport 和 Jasperreport整合开发web报表向导2.doc"以及"iReport 和 Jasperreport整合开发web报表向导3.doc",你将能更深入地了解这一过程...

    ireport子报表嵌套

    iReport 子报表嵌套技术详解 iReport 子报表嵌套技术是 ireport 提供的一种高级功能,通过子报表技术我们可以创建复杂的报表,实现多对一的数据展示问题。在本文中,我们将通过 ireport 子报表技术,实现自有房产...

    iReport_web_报表开发

    ### 第二部分:iReport报表在Web项目的应用 #### 2.1 安装报表到Web项目 首先,将iReport生成的编译后的`jpdfUnitList.xml`和`jpdfUnitList.jasper`文件复制到Web应用的`WEB-INF/new_folder/report/pdf/unit`目录下...

    ireport开发交叉报表资料及笔记

    【ireport开发交叉报表资料及笔记】 交叉报表(Crosstab)是数据分析中常用的一种工具,它可以将数据按行和列的方式进行交叉展示,便于用户更直观地理解数据间的关联和对比。Ireport是一款强大的开源报表设计工具,...

Global site tag (gtag.js) - Google Analytics