jasper 小试牛刀(一)

原创 2012年03月30日 10:49:25

最近刚好用到jasper 4.0 做关于报表的开发 , 随及就写点东西, 请各位大侠不要泼油哈…………

 

jasper 4.0 和以前版本不太相同,据说是重构了一下。 这里主要说下jasper 4.0 的用法 以及和ireport (图形化工具) 的联合使用

 

1) 在ssh项目 中, 很多人都习惯将 jasper 的jar包 全部导入进去,但是这样有时会出现问题(jar 包冲突,或者是jar包 重复)

 

      jasperreports-4.0.1.jar ,

       jasperreports-applet-4.0.1.jar,

       jasperreports-fonts-4.0.1.jar, 

      jasperreports-javaflow-4.0.1.jar

这4个jar包就是jasper核心的jar包了,但是在导入的时候,(没特殊情况)前面三个就ok了,不然很容易就出现 多个component  我也是找了很久才找到的,当然jasper 的配套包 像 (groovy,itext,等 )groovy-all-1.7.5.jar,itext-asian.jar,commons 之类的 是必须的。

但是这些包 的版本必须要配对 特别是 json 包的版本,groovy的版本,groovy的已经写出来了,对于json 当然是最近版本比较好,目前我用jasper4.0  用到的json包是 json-lib-2.3-jdk15.jar ,jsonplugin-0.33.jar(最低的json 2.0 还没考证过)  。对于和struts 的结合则是用的  struts2-jasperreports-plugin-2.1.6.jar

 

2)ireport 是jasper图形化的工具,通过它可以画出很多复杂的报表格式,以及方便的链接数据源(就是取得数据) ,这里具体的用法就不做介绍,先看一个ireport制作的报表样式:

 

唯一的一点就是:

     如果报表要导出成pdf等文件的话,在 制作 jrxml 文件的时候就要注意到中文格式的问题.

     在有可能出现汉字的地方,要对那个 textfield 进行字体设定,具体的设定就在 “属性” 里面 :

          详细如下: font name 通常就采用宋体就ok ,比较通用,也不会容易出错 ,(TTF 的也可以)

                              pdf embeded 选项打上勾 ,在 pdf encoding 选项选择 UniGB-UCS2-H (Chinese Simplified) 

                              在pdf font name is now ...  选项选择   STSong-Light  。这样就屏蔽了中文pdf的乱码问题

 

下面贴个引用小例子:

(这个是生成报表文件并下载的)

File reportFile =
         newFile(ServletActionContext.getServletContext().             
       getRealPath("/report/"+donwloadFileName+".jasper"));
         String fileDir =reportFile.getAbsolutePath().substring(0,reportFile.getAbsolutePath().lastIndexOf(fileSeparator)+1);
        HashMap parameter = new HashMap();
        System.out.println(fileDir);
       
        parameter.put("STRWHERE"," and A.unit_id='23100' and A.stryear='2011' and A.strmonth='04'");
        parameter.put("SUBREPORT_DIR",fileDir);
        try{
        Connection con = getConnection();
    //    JasperReport jasperReport =JasperCompileManager
    //           .compileReport(fileDir+"电费交费报表.jrxml");
        JasperPrint jasperPrint =JasperFillManager.fillReport(reportFile.getPath(),
               parameter, con);
       JasperExportManager.exportReportToPdfFile(jasperPrint,
           fileDir+donwloadFileName+".pdf");
        }catch(Exception e){
            e.printStackTrace();
            return"false";
        }
       
        //   正式的文件下载
        System.out.println("get in");
        File reportFiles =null;
        try{

          // 这里是得到文件的具体路径
            filePath =ServletActionContext.getServletContext().             
             getRealPath("/report/"+donwloadFileName+".pdf");
             reportFiles =new File(filePath);

         // 下载的文件名
             donwloadFileName= donwloadFileName+".pdf";
        }catch(Exception e){
            success = false;
            e.printStackTrace();
            return"false";
        }

 

 

struts 配置文件:

    <!-- 报表的导出-->
        <action name="downLoad"class="downLoadJasperAction" method="downLoad">
       
          <resultname="success" type="stream">
               <param name="contentType">application/octet-stream;charset=ISO8859-1</param>
               <param name="inputName">targetFile</param>
               <paramname="contentDisposition">attachment;filename="${donwloadFileName}"</param>
               <param name="bufferSize">4096</param>
        </result>
       </action>

 

----------------------------------------------------------------------------------------------------------------------------------------------------

自己第一次写技术性的东西,希望能于己于人有点好处

 


Tiny4412 小试牛刀

最近搞了一块友善之臂的 Tiny4412 开发板,打算后期拿它来学习 Android ,但是在此之前呢,还是先用它来加深一下对 Linux 的学习。Tiny4412 开发板硬件与之前接触的 s3c24...
  • lizuobin2
  • lizuobin2
  • 2016年10月15日 21:32
  • 3469

boost.python小试牛刀

http://www.boost.org/doc/libs/1_55_0/libs/python/doc/ http://www.boost.org/doc/libs/1_55_0/libs/pyth...
  • xiarendeniao
  • xiarendeniao
  • 2014年04月26日 19:06
  • 2931

datatables 小试牛刀

datatables 服务端分页
  • chen_lian
  • chen_lian
  • 2016年06月22日 11:06
  • 1522

jasper 小试牛刀 (二) ----制作心得

上次写完后,就进入了一个紧张的报表集成,现在就把前段时间遇到的一些问题以及心得和大家分享一下: (一) 生成的报表有部分内容显示不出来:              起初这个问题很恼人,我同时生成的...
  • lfssay
  • lfssay
  • 2011年06月06日 10:59
  • 217

java-swing编程小试牛刀之图片查看器

  • 2012年09月18日 15:45
  • 366KB
  • 下载

Docker小试牛刀

  • 2018年01月05日 14:41
  • 1.39MB
  • 下载

义隆单片机——小试牛刀(转自他人非原创)

  • 2014年06月23日 09:35
  • 3KB
  • 下载

Java开源报表Jasper入门(2) -- 使用JasperSoft Studio创建一个简单报表

Java开源报表Jasper入门(2) -- 使用JasperSoft Studio创建一个简单报表         在接下来的教程中,我们将实现一个简单的JasperReports示例,展现其基本...
  • KingSea168
  • KingSea168
  • 2015年01月09日 13:20
  • 1757

jasper综合使用-javabean结合实际业务-解决PDF中文

前言: 之前写了2篇关于JasperSoft的文章,当时调通了,以为万事大吉了就放了一段时间。 结果等到现在用的时候重新捡起来发现问题是真的多,下面就一一罗列一下。...
  • pspr2
  • pspr2
  • 2017年10月26日 17:50
  • 174

[Jasper使用总结]iReport报表设计-动态列实现

有时候,有些报表要求列为动态的,需要由用户自己决定显示列。 在iReport中,本身并没有提供动态列的功能。...
  • yangxin114
  • yangxin114
  • 2013年09月27日 14:18
  • 12298
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jasper 小试牛刀(一)
举报原因:
原因补充:

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