iReport 和 Jasperreport 整合开发 WEB 报表向导(二)

转载 2004年11月03日 11:17:00

在上一篇文档里我们初步介绍了 iReport 和 Jasperreport,基本上我们已经对它们有了一个最初的认识,在今天这篇文档里,我将深入的对 iReport 这个工具进行说明。

接着上篇文档的结尾,如果我们成功运行 iReport 的话,可以看到如下的主界面:

点击“新增” 按钮可以创建一个新的空报表,考虑到生成后的XML文件编辑的时候可以显示中文,请在 xml encoding 选项上 GB2312 (没有选项自己手动输入),如下图:

当设置完必要的选项点击完成可以得到一个空白的报表,如下图:

好了,输入一段文本,很简单,点击创建“静态文本”按钮 ,然后在报表任何一个工作区(如 title,pageheader,detail,pagefooter summary 等等)输入,如输入“今天天气不错!”。在属性框页可以对输入的内容进行属性控制,如字体,颜色,大小,以及其他的属性,报表中任何的元素(静态文本,线,框等等)都有自己的属性页,一般双击任何元素都可以弹出该元素的属性页,属性页如下图:

完工,一个最简单的报表就生成了,iReport 配有运行环境,如下快捷按钮:

左边的按钮是运行静态报表(无需数据库环境),右边的是运行动态报表(这时需要设置数据库连接,数据库的连接载下面介绍)

那么经过上遍的努力,很显然我们将要运行的静态报表,那么点击左边的按钮就可以看到下面的 pdf,如图:

当然上遍的例子是最简单,呵呵

下面我将采用问答的方式进行逐步讲解 iReport 的用法
1. 如何连接数据库?
2. 如何定义变量、参数以及字段?
3. 如何定义字体以及如何使用自定义的字体(如黑体、楷体或者比较艺术化的子体)?
4. 如何执行 SQL 脚本进行查询?
5. 如何把做好的报表引入到应用程序中?

好了,针对上面的问题,我在下面的篇幅中给于解答并穿插介绍 iReport 中其它的功能菜单。

1. 如何连接数据库?

静态的报表其实很少的,我在前一篇文档中有提到过一句经典的话:“A datasource + a jasper = a print” 因此有必要首先介绍一下如何连接数据库,其实很简单。进入 Datasource/Connections/Datasources 菜单或者点击 快捷按钮,则出现下面属性页:

进行必要的数据库连接属性配置,然后点击test按钮进行测试,如果提示测试成功,则保存数据库连接,即可。

2. 如何定义变量、参数以及字段?

变量、参数以及字段的定义,在 iReport 里是比较方便的,在菜单 view 下可以看到一些控制点,如下图:

Report properties 设置报表属性

Report query 设置查询语句的,这个在下面有介绍

Report fields 设置字段(数据库)

Report variables 设置变量

Report parameters 设置参数

Report fonts 设置字体

顺便把下面的你个也说明一下

Bands,弹出报表工作区(如 title detail 等)的属性页

Report groups 设置组

Element properties 元素属性页

Element browser 显示报表所有元素的列表

设置很容易,但是在报表中引用这些变量、参数和字段就有写说头了,呵呵J,让我们一步一步慢慢来。
在 iReport 中引用的方式,如下表

元素 名称 引用
变量 variablesName $V{ variablesName }
参数 parameterName $P{ parameterName }
字段 filedsName $F{ filedsName }

其实这些不说明好像不知道如何办,一单说明了,它们也是很好用的也很简单的。多用吧!

3. 如何定义字体以及如何使用自定义的字体(如黑体、楷体或者比较艺术化的子体)?

因为考虑到使用亚洲字体,因此你需要下在额外的 ja r包 iTextAsian.jar,如果 iReport 下载包中含有此 jar 包,此步骤可免。

目前在 iReport 中使用中文字体,好像只有宋体一种,如果想用其它的字体(如黑体、楷体等)需要另外的方法,这在下面介绍,下面介绍如何使用常用的中文字体“宋体”的设置方法,在问题2中我们看到引入字体的选项,点击 “Report fonts” 可以看到下面属性页:

好,如上边的设置就已经设置好宋体,以后在报表的任何地方都可以引用该字体,如下面我们要把我们在上边的例子中的元素“今天天气不错!”改为用宋体,如下:

这样只要我们在 Report font 选项中选中 songti 那么下面的属性自动继承,呵呵,方便吧!
好,下面讲述如何使用宋体以外的中文字体,如:黑体、楷体或其他的艺术化的字体。

也很简单,不过好像目前 iReport 的功能不够完美的缘故,还要手动修改 xml 文件才可以达到要求,如下图我们定义黑体:

首先不同的是在 PDF font name 选项中选中 External TTF font…,按照常理,此时要在紧接着的选项中选择黑体的 ttf 文件 SIMHEI.TTF,可是不知为什么 TrueType font 的选项是空的,(当时我在学习的时候,这步操作让我好胜郁闷),天啊,该怎么办?!

后来我查看了相应的 xml 文件,如下:(由于文件较大,因此只截取我们关心的)

<staticText>
  <reportElement
    mode="Opaque"
    x="13"
    y="42"
    width="239"
    height="53"
    forecolor="#000000"
    backcolor="#FFFFFF"
    positionType="FixRelativeToTop"
    isPrintRepeatedValues="true"
    isRemoveLineWhenBlank="false"
    isPrintInFirstWholeBand="false"
    isPrintWhenDetailOverflows="false"/>
  <textElement textAlignment="Left" verticalAlignment="Top" lineSpacing="Single">
    <font fontName="黑体" pdfFontName="" size="36" isBold="false" isItalic="false" isUnderline="false" isPdfEmbedded ="true" pdfEncoding ="Identity-H" isStrikeThrough="false" />
  </textElement>
  <text></text>
</staticText>

大家可以看到黑体的 pdfFontName=”” 是空的,于是我尝试把系统黑体的TTF文件路径(C:/WINNT/fonts/SIMHEI.TTF)写到这个地方,哈哈,居然成功了。

于是我得到这样一个结论,目前如果你在报表中使用其它的字体,首先要做上面图中所做的属性设置,然后手动把字体的 TTF 文件写到 pdfFontName=””,虽然麻烦了点,不过这招挺管用,呵呵!

利用JasperReport+iReport进行Web报表开发(java)

(1)使用iReport-4.8.0版本; (2)JasperReport也是用配套的4.8.0版本的jar包; (3)报表中 中文 设置: (4)java代码网址:http://blog.c...
  • u010720985
  • u010720985
  • 2017年04月20日 11:44
  • 1025

利用JasperReport+iReport进行Web报表开发

用JasperReport+iReport进行Web报表开发序言在很多实际的项目里,报表都是其中十分重要的组成部分,例如把查询结果以报表的形式呈现出来。这里所提到的报表可不是简单的二维表,而是拥有复杂...
  • kabini
  • kabini
  • 2007年05月08日 09:20
  • 93827

jasperreport+jaspersoft生成报表并集成到spring boot中

最近项目搭建需要一个开源报表的架子,搜索的时候找到了帆软,虽然个人使用是免费,而且功能也很强大,但无奈项目强调开源只好放弃。 后来经同事推荐找到了jasperreport,网上整个搜了一遍,几乎全是j...
  • pspr2
  • pspr2
  • 2017年06月02日 13:10
  • 3060

JasperReport 报表在SpringMVC WEB项目中的应用(JavaBean作为数据源)

使用场景在本文中我将JasperReport应用于某业务管理系统(WEB)的综合查询页面中,用于报表展示以及PDF和EXCEL文件的导出。 使用效果如下: 模板制作在项目中使用之前,需要限制做好j...
  • tzdwsy
  • tzdwsy
  • 2016年01月27日 17:55
  • 9258

SpringMVC与iReport(JasperReports) 5.6整合

在程序开发过程中,打印功能是不可或缺的。iReport,是目前相当好用的一款插件, 同时,很好的支持springmvc。 1、项目依赖包,添加必须的JasperReports依赖包。 ...
  • football98
  • football98
  • 2016年10月10日 16:02
  • 1906

ireport+jsp基于jasperReport 实现(后台map数据源)导出报表至web页面

最近在网上搜索了好多报表编辑器,来实现导出为HTML,现在国内也有很多很好的付费软件,但对于需求不是很高的报表,用开源的也可以实现。 前提要素及工具: ireport 5.6.0; 因为我这里的需...
  • qinzuoguo
  • qinzuoguo
  • 2017年03月31日 12:39
  • 836

JasperReport+iReport进行java报表开发

一  相关基础知识    1.关于JasperReport和iReport    Jasperreport是一个报表制作程序,用户需要按照它制定的规则编写一个XML文件,然后得到用户需要输出的格式文件...
  • oscar999
  • oscar999
  • 2007年06月08日 11:07
  • 9454

如何将jasperreport集成到spring mvc中并展示报表内容

我们现在很少会用到JasperReport,那么也更没有什么可能会使用servlet+jsp来呈现制作好的报表内容,现在spring和spiring mvc在web后端开发的地位如日中天,因此如果使用...
  • yan_tu
  • yan_tu
  • 2017年05月10日 15:20
  • 2431

报表生成 - 使用JasperReport(iReport)进行WEB开发

一、JasperReport和iReport简介:   1、JasperReport简介   JasperReport是一个强大、灵活的报表生成工具,是开放源代码组织sf.net中的一个java...
  • xo_zhang
  • xo_zhang
  • 2013年05月19日 21:58
  • 2047

ireport jasperreport 主报表向子报表传递参数

主报表向它的自报表传递参数,如下: 1、新建主报表:main_report   2、创建子报表:sub_report     3、在子报表中声明要传入的参数:f...
  • lgh1117
  • lgh1117
  • 2015年07月30日 22:47
  • 5966
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iReport 和 Jasperreport 整合开发 WEB 报表向导(二)
举报原因:
原因补充:

(最多只允许输入30个字)