`
glacier3
  • 浏览: 384941 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

about jasper report!

阅读更多
1:解决PDF生成时候的中文问题:

1. ireport生成中文PDF报表时,需设置:
1)增加itext中文包在lib目录下
2)pdf encoding 选 UniGB-UCS2-H (Chinese Simplified)
   pdf font name 选 stsong-light
   (可以使用View->Report Fonts一次解决)
2. ireport有时侯不能显示数据库中数据的解决方式:
  1)每一个element:设置:print when details overflow ;stretch overflow
  2)字段高度不够

3. dori.jasper.engine.JRException: Error loading object
  from file : D:\jakarta-tomcat-4.0.1\jakarta-tomcat-4.0.1\webapps\safe\safe1.jasper

新的jasperreport的版本是0.5.2,ireport用的是0.5.0,你把你的搜索路径里面的库换一下就好了

4. 一段测试代码:
  package test;

  /**
   * <p>Title: </p>
   * <p>Description: </p>
   * <p>Copyright: Copyright (c) 2003</p>
   * <p>Company: est</p>
   * @author mgp
   * @version 1.0
   */
  import dori.jasper.engine.*;
  import dori.jasper.engine.util.*;
  import java.sql.*;
  import java.util.*;
  import dori.jasper.engine.JasperReport;
  import java.util.Date;
  import java.text.SimpleDateFormat;
 
  public class report {
    public report() {
    }
 
    public static void main(String[] args){
 
      JRResultSetDataSource jrds=null;
      JasperPrint jasperPrint=null;
      Map reportParams = new HashMap();
      ResultSet rs=null;
      Connection con = null;
      Statement stmt = null;
      String sql = "select * from wms_sku";
      String driver = "oracle.jdbc.driver.OracleDriver";
      String url = "jdbc:oracle:thin:@192.168.0.254:1521:server1";
 
 
      try {
        JasperReport jasperReport = (JasperReport) JRLoader.loadObject(
            "C:/est/helix/helix/reports/testdao.jasper");
        Class.forName(driver);
        con = DriverManager.getConnection(url, "****", "****");
        stmt = con.createStatement();
        rs = stmt.executeQuery(sql);
        if(!rs.next())
          return ;
        jrds = new JRResultSetDataSource(rs);
        jasperPrint =
          JasperFillManager.fillReport(
                                      jasperReport,
                                      reportParams,
                                      jrds
          );
 
 
        JasperPrintManager.printReportToPdfFile(jasperPrint, "c:/abcd.pdf");
      }
      catch (ClassNotFoundException ex) {
        ex.printStackTrace();
      }
      catch (SQLException ex) {
        ex.printStackTrace();
      }
      catch (JRException e) {
          e.printStackTrace();
      }
    }
  }

5. 利用mysql数据库,生成pdf报表,在Tomcat中显示:

<%@ page import="dori.jasper.engine.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%
  File reportFile = new File(application.getRealPath("/reports/mydoc5.jasper"));
  Map parameters = new HashMap();
 
  Class.forName("org.gjt.mm.mysql.Driver").newInstance();
  String url ="jdbc:mysql://localhost/clients?user=sa&password=&useUnicode=true&characterEncoding=GB2312";
  Connection conn= DriverManager.getConnection(url);

     
  byte[] bytes =
   JasperRunManager.runReportToPdf(
    reportFile.getPath(),
    parameters,
    conn
    );
 
  response.setContentType("application/pdf");
  response.setContentLength(bytes.length);
  ServletOutputStream ouputStream = response.getOutputStream();
  ouputStream.write(bytes, 0, bytes.length);
  ouputStream.flush();
  ouputStream.close();
    
%>
     note:
     1)<%@ page contentType="text/html;charset=gb2312"%> 这句话不能有,不然会提示下载
     2)从数据库中获取中文数据Encoding=GB2312是必须的
     3)由于ireport使用的jasperreport版本与jasperreport发行的版本不一致,所以会造成很多错误,例如:
      dori.jasper.engine.JRException: Error loading object
       from file : D:\jakarta-tomcat-4.0.1\jakarta-tomcat-4.0.1\webapps\safe\safe1.jasper

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

2、预览、打印JasperPrint等:

JasperReports学习笔记

版本:jasperreports-0.6.7
学习资料来源:http://jasperreports.sourceforge.net

一、    需求(requirements)
JasperReports要用到的工具和类
1. JDK(java开发环境)
  JDK 1.2.2 or higher  
2. XML
  JAXP 1.1 XML Parser(XML解析器)

  Jakarta Commons Digester Component (version 1.1 or later)
  http://jakarta.apache.org/commons/digester/

  Jakarta Commons BeanUtils Component (version 1.1 or later)
  http://jakarta.apache.org/commons/beanutils/

  Jakarta Commons Collections Component (version 1.0 or later)
  http://jakarta.apache.org/commons/collections/

  Jakarta Commons Logging Component (version 1.0 or later)
  http://jakarta.apache.org/commons/logging/
3. JDBC(连接数据库用)
  JDBC 2.0 Driver
 
4. PDF(转换为PDF文件用到)
  iText - Free Java-PDF library by Bruno Lowagie and Paulo Soares
  (version 1.01 or later)
  http://www.lowagie.com/iText/
 
5. XLS(转换为excel文件用)
  Jakarta POI (version 2.0 or later)
  http://jakarta.apache.org/poi/

二、快速了解(quick how to)
1. Main classes(主要的类)
用JasperReports 时,用到的主要类
net.sf.jasperreports.engine.JasperCompileManager
net.sf.jasperreports.engine.JasperFillManager
net.sf.jasperreports.engine.JasperPrintManager
net.sf.jasperreports.engine.JasperExportManager
这些类提供了很多静态方法,用来编译、填充、打印和导出报表。详细信息请参考JasperReports的javadoc文档。
 
net.sf.jasperreports.view.JasperViewer
此类用来预览生成的报表(generated reports.)。
 
net.sf.jasperreports.view.JasperDesignViewer
此类用来预览报表设计(view the report design)。
 
2. 编译报表设计Compiling a report design
  xml文件定义报表设计(report design)。编译报表设计(report design)产生报表(generate reports)。网页http://jasperreports.sourceforge.net/quick.how.to.html中介绍用net.sf.jasperreports.engine.JasperCompileManager类的静态方法compileReportXXX()来编译报表设计(report design)。但是JasperCompileManager不赞成使用此方法编译报表设计(report design),推荐使用JasperCompileManager的方法compileReportXXX()来代替。
    编译报表设计(report design)时,jasperreports engine首先检查模板,确定是否一致,然后转换所有的报表表达式(report expressions),最后产生.jasper文件。    要想使编译工作尽可能灵活,你可以实现接口net.sf.jasperreports.engine.design.JRCompiler。
    
3.预览报表设计 Viewing a report design
  使用net.sf.jasperreports.view.JasperDesignViewer的程序来预览。他的main()方法接受报表设计文件名(xml)或者编译后的.jasper文件。
 
4. 填充报表 Filling a report
  编译报表设计(xml文件)得到报表文件(.jasper),再调用net.sf.jasperreports.engine.JasperFillManager类的方法fillReportXXX(),可以得到报表(JasperPrint)。
5. 预览报表 Viewing a report
  Generated reports can be viewed using the net.sf.jasperreports.view.JasperViewer application.
  In its main() method, it receives the name of the file which contains the report to view.
  我没有测试成功。
6. Printing a report
  Generated reports can be printed using the printReport(), printPage() or printPages() static methods exposed by the net.sf.jasperreports.engine.JasperPrintManager class.
 
7. Exporting to PDF, HTML, XLS, CSV or XML format
  填充报表文件(.jasper文件)得到报表(JasperPrint)后,可以使用net.sf.jasperreports.engine.JasperExportManager类的方法exportReportXXX()导出为各种格式的文件PDF,HTML,XML。
After having filled a report, we can also export it in PDF, HTML or XML format using the exportReportXXX() methods of the net.sf.jasperreports.engine.JasperExportManager class.


三、JasperReports的工作流程:

根据上图的流程,JasperReports做报表有一下步骤:

1、    报表设计,可以用ireport可视化工具来实现,生成xml文件。完成后,可以直接到步骤3,直接编译xml文件。
2、    如果已经存在报表设计文件(xml文件),可以用net.sf.jasperreports.engine.xml.JRXmlLoader.load()方法载入报表设计,该方法返回JasperDesign对象,通过JasperDesign对象,可以修改报表设计,比如:添加、删除字段,添加、删除变量,添加、删除分组,等等。
3、    完成报表设计后,接下来就可以编译报设计,编译报表设计可以用类net.sf.jasperreports.engine.JasperCompileManager的compileReport()方法来实现,该方法可以编译xml文件或JasperDesign对象,产生JasperReport对象,JasperReport对象可序列化,能够保存为文件(通常是.jasper文件)。类net.sf.jasperreports.engine.JasperCompileManager还可以把报表转化为报表设计文件(xml文件)。得到JasperReport对象(可从.jasper文件实例化一个JasperReport对象)后,给报表填充数据产生JasperPrint对象。JasperPrint对象可序列化,保存为文件。有了JasperPrint对象后,可以打印、浏览、转换为其他格式的文件,如:PDF,HTML,XML,XLS,CSV等等,这些操作就是我们想得到的最终结果。尽管JasperPrintManager类可以导出为PDF,XML文件,但是不赞成使用JasperPrintManager类来导出,建议用JasperExportManager类来导出PDF,HTML,XML文件;要导出XLS和CSV文件,用专业的导出类net.sf.jasperreports.engine.export.JRXlsExporter类和net.sf.jasperreports.engine.export.JRCsvExporter类
导出为XLS的代码段:
JRXlsExporter exporter = new JRXlsExporter();//创建实例
//设计参数
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, strDestFile);
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
exporter.exportReport();//导出

导出为CSV文件和XLS类似。


分享到:
评论

相关推荐

    Jasper report用户手册Jasper report用户手册

    《JasperReport用户手册》是针对Java开发人员和报表设计者的一份详尽指南,它提供了使用JasperReport库创建、设计和管理复杂报表的全面知识。JasperReport是一款开源的报表工具,允许开发者在各种应用程序中嵌入交互...

    Jasper Report

    Jasper Report

    Jasper_Report用户手册

    Jasper Report用户手册 version1.0 1 简介 2 API概览 Class net.sf.jasper.engine.design.JasperDesign Class net.sf.jasper.engine.JasperReport Class net.sf.jasper.engine.JasperCompileManager Class ...

    Jasper Report用户手册.doc

    这份《Jasper Report用户手册》详尽地介绍了如何使用JasperReport进行报表的设计、编译、预览、填充、查看、打印以及导出等操作。 首先,手册简要介绍了JasperReport的基本概念,包括API概览。API中涉及的主要类和...

    Jasper Report用户手册(1.0)中文版

    ### Jasper Report 用户手册知识点概述 #### 一、简介 Jasper Reports是一款开源的报表工具,由Jaspersoft公司开发并维护。它能够帮助开发者轻松地将数据转化为专业的报表格式,并支持多种输出方式,如PDF、HTML、...

    The First Jasper Report Ever

    标题和描述均提到了"The First Jasper Report Ever",这标志着Jasper Reports的首个报告实例,Jasper Reports是一种广泛使用的开源报告工具,它允许用户创建、填充和查看复杂的报表。此报告由byteodord在2001年至...

    struts2 + jasper report

    总结来说,`struts2 + jasper report`的组合为Java Web应用提供了强大的报表生成能力,通过Struts2的控制层管理和JasperReport的报表引擎,可以方便地将后台数据转化为直观的报表展示给用户。在项目`...

    jasper report 报表源码 里面有demo

    jasper report 报表源码 里面有demo 容我多说俩,jasperReports 是一个基于 Java 的开源报表工具,它可以在 Java 环境下像其它 IDE 报表工具一样来制作报表。JasperReports 支持 PDF、HTML、XLS、CSV 和 XML 文件输出...

    jasper怎么构建报表的详细例子

    在本篇文章中,我们将深入探讨如何使用Jasper来构建各种类型的报表,包括普通报表、分组报表、自定义报表、图形报表以及图形表格混合的报表。 首先,我们从基础开始——普通报表。JasperReport的基础在于JRXML文件...

    还是jasper report jar包 补充三个

    标题中的“jasper report jar包 补充三个”指的是在之前的基础上增加了三个与JasperReports相关的JAR库,这是用于报表生成和设计的开源Java框架。JasperReports库依赖于多个第三方组件,以便支持丰富的报表功能,如...

    JasperReports介绍.doc Jasper report

    编译时,可以通过设置系统属性`jasper.reports.compile.class.path`和`jasper.reports.compile.temp`来定制类路径和临时目录。 填充阶段,使用`JasperFillManager`类的`fillReportXXX()`方法,结合JDBC链接从数据库...

    jasper报表(odoo)

    jasper报表(odoo)

    Jasper Report java包 帮助文档 API 实例

    JasperReport是一款强大的开源报表工具,专为Java应用程序设计,用于生成复杂的报表和文档。它提供了丰富的API,使得开发者能够灵活地创建、设计和管理各种类型的报表。在本帮助文档和API实例中,我们将深入探讨...

    jasper report用到的5个jar包

    JasperReport是一款强大的开源报告生成工具,它允许开发者创建复杂的报表设计,并且可以在多种格式下导出,如PDF、HTML、XLS、CSV等。在使用JasperReport时,为了使其正常工作,需要依赖一系列的Java Archive (JAR) ...

    Jasper Report 报表的使用步骤及应用

    JasperReport 是一款强大的开源报表工具,用于设计和生成各种复杂的报表。它的灵活性和功能强大,使得它在Java开发环境中广泛使用。以下将详细介绍JasperReport报表的使用步骤及其基本应用。 1. **Jaspersoft ...

    Jasper_+_ireport_集成报表到Web应用,操作说明

    在集成Jasper Report与iReport到Web应用之前,首要步骤是下载并安装所需的软件。iReport是Jasper Report的一个图形界面设计工具,主要用于设计报表布局。而Jasper Report则是一套用于在Java应用程序中生成报表的类库...

    Jasper Report Tutorial

    JasperReport是一款强大的开源报表工具,它能够将丰富的内容呈现到屏幕、打印机或各种文件格式中,如PDF、HTML、XLS、CSV和XML。它的核心功能包括设计复杂的报告布局、处理多种数据源、支持参数化报告、表达式计算、...

    中国联通物联网Jasper平台介绍

    中国联通物联网Jasper平台是一款专为实现企业物联网(IoT)高效运营而设计的综合性解决方案。该平台的核心功能和特点主要包括以下几个方面: 1. **全面的设备管理**:Jasper平台支持大规模的物联网设备连接和管理,...

    jasper.jar jasper.jar

    jasper.jar jasper.jar

    Jasper报表官方文档

    Jasper报表是一款强大的开源报表工具,它允许开发者创建复杂的数据可视化和打印输出。这份官方文档集合包含了关于Jasper的核心组件的详细指南,如iReport、JasperServer以及JasperReports,确保用户能够利用最新的...

Global site tag (gtag.js) - Google Analytics