完成我的第一个 iReport + jasperReport 做的报表

 

        纪念一下,今天完成了我的第一个报表,用到了开源报表工具JasperReport 和 iReport 。

        从认识工具到做出第一个报表用了两天多时间,今天终于调出来了。刚把 PDF 的中文显示问题也解决了。

        下面谈一下这几天摸索的一些经验:

        1 . 工具的选择

              公司用的是老的报表开发工具,都可放到博物馆去了。现在的报表制作工具有这么多,于是我决定自己找一个合适的做,刚开始选的是OpenReport。经多方咨询及查资料得知,现在主流的报表制作工具是 JasperReport  。于是开始找资料,还去官方网站下了一些原码参考。

        2 . 首先从 iReport  开始,试着做一些简单的,然后是带数据库连接的,顺便看了看 F, P, V 参数的用法。

        3 . 然后是 JasperReport  ,在参考了大量的资料的基础上,选用以下代码(原因:简单)。当然实现方法太多了,我也不可能介绍完,自己看原码去。

 


<% @ page contentType="text/html;charset=GBK"  %>  
<% @ page import="net.sf.jasperreports.engine.*"  %>  
<% @ page import="net.sf.jasperreports.engine.util.*"  %>  
<% @ page import="net.sf.jasperreports.engine.export.*"  %>  
<% @ page import="java.util.*"  %>  
<% @ page import="java.io.*"  %>  
<% @ page import="java.sql.*"  %>  
<% @ page import="javax.naming.*"  %>  
<% @ page import="javax.sql.*"  %>  
<% @ page import="com.xiaoxin.report.JDBCConnection"  %>  
<%  
        Statement stmt 
= null;
        Connection conn
=null;

        JDBCConnection connection 
= new JDBCConnection();
        connection.setJdbcDriver(
"com.ibm.db2.jcc.DB2Driver");
        connection.setJdbcUrl(
"jdbc:db2://10.252.3.8:50000/lis");
        connection.setDbUser(
"db2inst1");
        connection.setDbPassword(
"db2inst1");
        conn 
= connection.getConnection();

        
String fileName= "test.jasper";
      File reportFile 
= new File(application.getRealPath(fileName));

        Map parameters 
= new HashMap();
         parameters.put(
"paramTitle""部门的列表");
         
//parameters.put("BaseDir", reportFile.getParentFile());
      parameters.put(
"paramPageHeart""这个是页面的头部");  
 
         parameters.put(
"paramPageHeart""这个是页面的头部");  
         parameters.put(
"paramOrder""Bmbm");  


      JasperPrint jasperPrint 
= JasperFillManager.fillReport(reportFile.getPath(), parameters, conn); 

 
    JRExporter exporter 
= null
    
String exportTo = "PDF"
        
if("HTML".equals(exportTo)) 
    { 
        exporter 
= new JRHtmlExporter(); 
        exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, 
Boolean.FALSE); 
    } 
    
else if("PDF".equals(exportTo)) 
    { 
        exporter 
= new JRPdfExporter(); 
        response.setContentType(
"application/pdf"); 
               response.setHeader(
"Content-disposition","attachment; filename=hello.pdf");
    } 
    
else if("Excel".equals(exportTo)) 
    { 
        exporter 
= new JRXlsExporter(); 
        response.setContentType(
"application/vnd.ms-excel"); 
    }
    
else if("ExcelDown".equals(exportTo)){
              response.reset();
              exporter 
= new JRXlsExporter(); 
              response.setContentType(
"application/x-msdownload");
              response.setHeader(
"Content-disposition","attachment; filename=hello.xls");
          }     

    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 
    exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, 
"GBK"); 
    exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream()); 
    exporter.exportReport(); 

      try{
              
        }catch(Exception e){
            
        }finally{
                conn.close();
        }

 
%>  

 

        4 . 最后解决了中文显示的问题,解决方法:

            下载 iTextAsian.jar

            Font Name : 宋体                                               PDF Font Name : STSong-Lingt  

           PDF Embedded PDF Name : UniGB-UCH2-H(Chinese Simplified)

           PDF Embedded PDF Name 选中

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值