jasperreport和ireport应用

Posted on 2006-07-06 17:34 负人博客 阅读(1921) 评论(0)  编辑  收藏 所属分类: 开源研究
由于公司的项目需要这几天一直在研究jasperreport和ireport,到现在已经研究了一段时间了,在学习过程中遇到了一些问题同时也学到了一些技巧,特做小文以享于他人.
1。工具简介
      jasperreport和ireport都是开源软件,可以免费下载。
ireport使jasperreport的一个可视化设计工具,里面集成了一些画图工具和数据库的操作,用ireport做出来的是一个jrxml文件也可以在里面直接编辑此文件(比较麻烦)。经过运行编译后生成jasper文件,这个文件是我们需要的东西,将来我们做报表读取的就是这个文件。工具的其他一些东西像下载地址之类的网上到处都是,在此就不细说了。下面我就把我这段时间遇到的问题在这做一个总结。
2。用ireport遇到的一些问题
      (1)解决里面的中文问题:
              在pdf里面不能显示中文
              解决方案:
                 1。将itextasian.jar下载下来(google一搜就有)放到  ireport目录底下的lib文件夹下即可。有人还说要再放一个itext.jar到
lib目录下,但是在我的应用过程中发现不放此文件也可以。
                 2。将每个文本域属性当中的PDF font name改为STSong-Light并且将PDF encoding里面的设置改为UniGB-UCS2-H (Chinese Simplified),此时应该差不多了。
       (2) 解决IE里面的斜线问题
            用ireport画的斜线无法在IE里面显示(因为html本身无法支持斜线)
            解决方案:将需要显示斜线的地方做成图片,然后利用image控件加载图片即可
          (3)解决IE里面无法显示的问题
                 在ireport里面画出的图表无法在ie里面显示
                 解决方案:在Ireport里面画图的时候不要用直线工具,里面的线全部用static text文本框的border画出。也就是说,里面的图表全部都是用文本框堆积成的。切记:图表里面的所有元素都不能交叉,如果有一点交叉或重叠,在IE里面都是显示不全的。
3。应用时常见的几种方式:
       由于html自身的局限性,以及html显示的问题,现在在网络上传输的打印很多都采用pdf格式输出。jasperreport对pdf做了很好的支持!
       个人根据需要可以改写jasperreport的代码,以使之更好的为自己服务。
     1.可以把数据放到map中传递到pdf打印页面(一般适合类似票据打印)   
        Map parameters = new HashMap();//参数

        通过把map输出到ireport模板中,得到要打印的票据

     2.可以把结果集放到collection中,这样想打印什么都可以了!

     3.剩下的就是写sql了,通过map把参数传递过去,利用参数就可以写要查询的结果集了。

注:在ireport通过查询语句取结果集的时候发现定义的参数顺序和ireport生成模板的顺序不一致,这样在sql中如果条件是(a,b,c)结果它把参数的顺序写成了(b,c,a)或者什么的。不知道这是不是ireport的bug。


只有注册用户登录后才能发表评论。


网站导航:
 

posts - 26, comments - 5, trackbacks - 0, articles - 8

Copyright © 负人博客