显示标签为“文案技巧”的博文。显示所有博文
显示标签为“文案技巧”的博文。显示所有博文

2009-03-21

用ireport+jasperreport制作报表

  所谓报表其实就是把数据按照某种方式整合起来,用适当的形式展示出来的东西。所以它的两个基本要素就是数据和表现,前者基本就是在各种实验、调查中获得的啦,后者嘛,jasperreport是一种比较方便的实现的工具,当然还有其他的。
  用jasperreport制作一个report一般有如下四个步骤:

  1. Create a template
  2. Compile the template
  3. Fill report
  4. Export report
ok,说明一下,第一步,一般用jasperreport的gui程序ireport创建一个template,这个东西其实只是一个xml文件,不过话说回来,开放式文档标准之后,还有什么不能用xml呢?只是要长的漂亮大家才爱用就是。。。
第二步,编译其实就是把上步的那个xml文件编译成一个二进制文件,这个虽然可以不编译,不过因为模板很常用所以弄一下就一次编译多次使用咯。
第三步,这个其实应该要在第一步搞定,但是实际当弄好一个模板以后只需要从这一步开始,所以放到这里,如果是第一次制作这个模板,那么有两种方法fill,第一种是在要fill的地方直接写sql语句,第二中是创建一个自己的数据源,不过这种需要extent JRDataSource这个类。
第四步,看你的需求,可以导出成pdf,html等等很多很多种。


接下来以我的ireport 3.50来练习一个报表。
新装的ireport长这样的:

既然是quick start,也非常简单,我这里直接用Database JDBC Connection
设置好你的配置,连接测试成功就ok了。
如果你是一个新数据库的话,你得先在服务器端弄好你的表。
我的长这样:
mysql> show tables;
+-------------------+
| Tables_in_ireport |
+-------------------+
| testreport |
+-------------------+
1 row in set (0.00 sec)

mysql> describe testreport;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| title | varchar(40) | YES | | NULL | |
| author | varchar(30) | YES | | NULL | |
| isbn | varchar(30) | YES | | NULL | |
| pic | varchar(80) | YES | | NULL | |
| perchasedate | date | YES | | NULL | |
+--------------+-------------+------+-----+---------+-------+

然后用创建新report的quick start。
选定好以后那个数据库查询(Query)只需要select * from 你的表 即可,这里主要是ireport获得表字段。


至于之后的group是干什么的呢,一张图就说明问题了,我这里以title 和 perchasedate为两个group的报表效果:

我这里录入了两条数据,其实就是图书的一些资料。当然这个报表的模板是默认的,相当的丑。

不过新版本有一个好的地方就是,早期的各种问题,诸如中文字体,和其他很多乱七八糟的问题都已经被解决了。

Jasperreport + ireport环境的配置

  最近才知道很多人用jasperreport和ireport来做报表,其实前者使用xml定义报表的模板,能够已多种格式输出成各种报表,后者只是前者的一个gui而已(但是ireport现在的版本其实是基于netbeans的),因为懒得玩window的,所以我直接就在我的ubuntu上来构建这个环境了,这篇帖子只说如何部署,所以没有概念定义。
  首先准备好东西:
  ireport:
https://sourceforge.net/project/showfiles.php?group_id=64348
  ireport也是一个挂在sourceforge下的项目,它的自我介绍是:
iReport is the most popular visual reporting tool for JasperReports (Java reporting library) and JasperServer (reporting server). You can manage charts, images, subreports, etc. Data sources: JDBC, TableModels, JavaBeans, XML, Hibernate, CSV etc. Output
  注意下载的ireport和jasperreport的版本似乎要求一致,另外貌似还有netbeans的插件版。
  jasperreport是java程序所以直接下载jar包即可
https://sourceforge.net/project/showfiles.php?group_id=36382&package_id=28579

下载好ireport之后你直接运行bin目录下的对应你的系统的执行文件。

最后再吐槽一句:
其实ireport现在的版本是一个和netbeans有着相当关联的东西,可以当作是netbeans的一个可视化报表设计改进版。
而jasperreport其实就是它的编译器了。
注:3月25日,ireport发布了最新的3.50版。