java用jasperreports 4.01+iReport +netbeans开发客户端报表(javabean数据源)

最近几天一直在用jasperreports 做一个C/S项目的报表 免费嘛又有可视化的编辑器 爽!

http://sourceforge.net/projects/jasperreports/files/jasperreports/JasperReports%204.0.1/ 官方下载地址 除了要下jasperreports-4.0.1.jar 以外 最好还要下

jasperreports-4.0.1-project.zip  这里面有很多依赖jar包 比如生成excel pdf等等的

http://sourceforge.net/projects/ireport/ 官方开发工具 ireport下载地址 

http://download.csdn.net/source/3083904 最少依赖jar包

 

首先声明下 最好不要用jasperreports 提供的netbeans的插件 开发出来的报表在模拟运行的时候没问题 但是在项目中会出很多无厘头的错误 比如

明明添加了所有该加的jar包 却抛出找不到类 class not found -> net.sf.jasperreports.engine.* 等等奇怪的异常

如果遇到这个异常可以手动指定

File f = new File("c:/jasperreports-4.0.1.jar");

JRProperties.setProperty(JRProperties.COMPILER_CLASSPATH, f.getAbsolutePath());

如果你用javabean 作为数据源的话 还会实际运行的时候还会抛出你的domain类找不到的奇怪一场,尽管已经把domain的类加到了classpath中,所以尽量用官方的开发工具Ireport开发.........否则容易各种悲剧......

闲言少叙....

首先介绍一下几种常用的数据源(datasource) -》

1.javabean模式 我个人最喜欢这个,感觉和hibernate配合起来很舒服..hibernate查询出来的domain或者List<domain>

都可以直接作为jasperreports 的数据源而直接生成预览或者各种格式的文件 用起来很灵活

2.hibernate connection/Spring loaded hibernate connection模式 该模式可以直接使用HQL获得数据源进而展示

3.JDBC connection/netbeans connection模式 利用传统的JDBC connection方式查询数据 使用SQL

其他的我也没怎么用过了......


下面演示一下用javabean作为数据源

首先打开ireport新建文件->选择好样式->新建数据源(点那个像小插头的东西)->new->选择javabean datasource->之后的那么随意至于是用collections或是array根据需要选择

下面有个factory class 这个选项其实可填可不填 其用途是通过一个工厂类的一个静态方法产生出若干数据源的数据

比如我需要的数据类型是Person 那么我可以写一个PersonFactory类,里面用一个静态方法返回一个Person集合对象或者数组对象供测试使用.而下面需要添的就是静态方法的名称

如果填写完成的话可以试一下 如果报错 找不到类的话....那就对了--因为我们没有把工厂类的类文件路径加到ireport的classpath中 所以一定找不到这个类的...  解决方法----->>>工具->选项->ireport->classpath->add Folder->选择你这个工厂类的class文件所在路径 注意不是源码而是编译后的class文件地址 勾上reloadable OK

添加之后 可以再去test一下刚才的javabean数据源 应该是没有问题的

->下一步右击根节点->edit query->java bean->填写class name 如果找不到类处理方法同↑ 在classpath中添加javabean类的路径 ->如果成功可以选择需要的属性 如果填写了factory的话还可以preview data看一下数据/没填也无所谓

->下一步 你所有需要的对象属性都已经在field中了 可以拖拽到detail中进行展示

这里有一点需要注意 如果你的bean中还包涵其他的对象属性而不是简单的string integer属性的话  需要edit expression

比如 Person类包涵了一个IdCard对象 而你需要得到IdCard的属性的话 可以拖拽出idcard 右击edit expression 在里面得到idcard需要的属性 (前提是有各种setter getter) 

 

如果是用jdbc的方式设计好sql后调用的时候只要 jp = JasperFillManager.fillReport(jr, new HashMap(),connection);//参数 jdbc的 connection对象 就可以

jasperreports 可以很方便的生成各种类型的报表文件 excel pdf等等 只需要导入对应jar包即可

继续学习中~~~~~~~~~~

 

 

 

完成之后 可以在java中调出打印预览并且打印



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值