iReport & JasperReport配置及用户简明手册

 收藏
 转贴自:http://blog.csdn.net/jawsy/archive/2005/06/09/390998.aspx

1 安装

1.1 iReport 的安装

iReport 直接解压后,将 J2SDK/lib 目录下的 tools.jar 拷贝到 iReport/lib 目录下,然后在 iReport 目录下运行 iReport.bat 即可。
需要注意的是 tools.jar 的版本必须要与本机安装的 jre 一致,也就是说,如果系统安装的是 jre1.4.2 就必须用 jdk1.4.2 的 tools.jar 。

1.2 JapserReport 开发(运行)环境的搭建

JasperReport 的开发环境必须要导入以下所有包:

1.   JasperReport 包,如jasperreports-0.6.1.jar ;

2.   Aparche Common 包,包括logging 、digester 、beanutils 、collections 、logging-api ;

3.   iText 包,包括itext-1.1.jar 和iTextAsian.jar (用于输出中文字符到PDF 文件)

以上所有包(除了iTextAsian.jar )都已经包含在iReport/lib 目录下。

2 开发流程

用iReport 可视化编辑生成的文件是jrxml 文档,这是一种xml 文件,记录了一份report 的详细信息,我们可以直接用写字板打开它编辑,iReport 就是一个方便我们生成和编辑jrxml 文件的工具,它也可以很方便地将jrxml 文件编译成jasper 报表文件。

jrxml 文件通过Jasper 编译之后就变成了jasper 文件,这份文件才是真正在程序中调用生成报表的report 文件。

但是有一点要注意的是,jasper 的各个版本编译出来的jasper 文件并不兼容,就是说用0.6.1 版编译出来的文件用0.6.4 版调用是会出错的,而iReport 自带的Jasper 版本是0.6.1 ,而jasper 的最新版本是0.6.4 。所以为了保持通用性,我建议只用iReport 来开发编辑jrxml 文件,而不编译成jasper 文件,在我们的打印报表程序中再即时编译一次。虽然这样效率可能会低了一点,但是保证了不同版本的兼容性。

在我们的程序中,要调用Jasper 的话,首先要得到一个数据库的Connection ,形如:Connection con = ...

需要往JasperReport 传参数的话只需要新建一个Map ,以参数名作为key ,需要传入的对象作为value ,譬如:

Map props = new HashMap();

       props.put("name", new String("name"));

需要多个参数只需分别put 进Map 里去就可以了。

JasperReport 有如下几个主要的Manager :

JasperCompileManager

将jrxml 文件编译成jasper 文件或JasperReport 对象

JasperFillManager

从数据源中获取数据并填充jasper 文件或JasperReport 对象,产生JasperPrint 对象

JasperPrintManager

将JasperPrint 对象直接输出到打印机打印

JasperExportManager

将JasperPrint 对象导出成PDF 或HTML 文件(或流)

JasperRunManager

运行一个jasper 文件或JasperReport 对象并输出到PDF 或Html 文件(或流)中,我的理解是等于集成了JasperFillManager JasperExportManager 的功能

对于上述对象的详细说明请参阅JasperReport 的文档。

例程:

例程:

public static void main(String[] args) {

     try {

       Class.forName("org.gjt.mm.mysql.Driver");

       Connection con = DriverManager.getConnection(

           "jdbc:mysql://wes:3306/umpdb?useUnicode=true&characterEncoding=GBK", "root", "elite");

       File f1 = new File("Account.jrxml");

       File f2 = new File("Contact.jrxml");

       JasperReport main = JasperCompileManager.compileReport(f1

           .getAbsolutePath());

       JasperReport report = JasperCompileManager.compileReport(f2

           .getAbsolutePath());

       Map props = new HashMap();

       props.put("subreport", report);

       JasperPrint print = JasperFillManager.fillReport(main, props,con);

       //JasperPrintManager.printReport(print,true);

       JasperExportManager.exportReportToPdfFile(print, "a.pdf");

       //JasperRunManager.runReportToPdfFile("Account.jasper", "a.pdf", props, con);

     } catch (ClassNotFoundException e) {

       // TODO 自动生成 catch 块

       e.printStackTrace();

     } catch (SQLException e) {

       // TODO 自动生成 catch 块

       e.printStackTrace();

     } catch (JRException e) {

       // TODO 自动生成 catch 块

       e.printStackTrace();

     }

   }

3 注意事项

1 .iReport 中新建中文报表的时候记得要输入XML 编码GB2312 。

2 .iReport 中定义中文字体的时候,要选择PDF Font Name 为STSong-Light (宋体)、MHei-Medium (黑体)、MSung-Light ,在PDF Encoding 中选择GB-UCS2-H(Chinese Simplified) ,否则输出到PDF 时会乱码。

3 .用Report SQL 查询之后,可能会出现某些字段没有自动建立Field ,就需要在Field 中手动定义了。

1 安装

1.1 iReport 的安装

iReport 直接解压后,将 J2SDK/lib 目录下的 tools.jar 拷贝到 iReport/lib 目录下,然后在 iReport 目录下运行 iReport.bat 即可。
需要注意的是 tools.jar 的版本必须要与本机安装的 jre 一致,也就是说,如果系统安装的是 jre1.4.2 就必须用 jdk1.4.2 的 tools.jar 。

1.2 JapserReport 开发(运行)环境的搭建

JasperReport 的开发环境必须要导入以下所有包:

1.   JasperReport 包,如jasperreports-0.6.1.jar ;

2.   Aparche Common 包,包括logging 、digester 、beanutils 、collections 、logging-api ;

3.   iText 包,包括itext-1.1.jar 和iTextAsian.jar (用于输出中文字符到PDF 文件)

以上所有包(除了iTextAsian.jar )都已经包含在iReport/lib 目录下。

2 开发流程

用iReport 可视化编辑生成的文件是jrxml 文档,这是一种xml 文件,记录了一份report 的详细信息,我们可以直接用写字板打开它编辑,iReport 就是一个方便我们生成和编辑jrxml 文件的工具,它也可以很方便地将jrxml 文件编译成jasper 报表文件。

jrxml 文件通过Jasper 编译之后就变成了jasper 文件,这份文件才是真正在程序中调用生成报表的report 文件。

但是有一点要注意的是,jasper 的各个版本编译出来的jasper 文件并不兼容,就是说用0.6.1 版编译出来的文件用0.6.4 版调用是会出错的,而iReport 自带的Jasper 版本是0.6.1 ,而jasper 的最新版本是0.6.4 。所以为了保持通用性,我建议只用iReport 来开发编辑jrxml 文件,而不编译成jasper 文件,在我们的打印报表程序中再即时编译一次。虽然这样效率可能会低了一点,但是保证了不同版本的兼容性。

在我们的程序中,要调用Jasper 的话,首先要得到一个数据库的Connection ,形如:Connection con = ...

需要往JasperReport 传参数的话只需要新建一个Map ,以参数名作为key ,需要传入的对象作为value ,譬如:

Map props = new HashMap();

       props.put("name", new String("name"));

需要多个参数只需分别put 进Map 里去就可以了。

JasperReport 有如下几个主要的Manager :

JasperCompileManager

将jrxml 文件编译成jasper 文件或JasperReport 对象

JasperFillManager

从数据源中获取数据并填充jasper 文件或JasperReport 对象,产生JasperPrint 对象

JasperPrintManager

将JasperPrint 对象直接输出到打印机打印

JasperExportManager

将JasperPrint 对象导出成PDF 或HTML 文件(或流)

JasperRunManager

运行一个jasper 文件或JasperReport 对象并输出到PDF 或Html 文件(或流)中,我的理解是等于集成了JasperFillManager JasperExportManager 的功能

对于上述对象的详细说明请参阅JasperReport 的文档。

例程:

例程:

public static void main(String[] args) {

     try {

       Class.forName("org.gjt.mm.mysql.Driver");

       Connection con = DriverManager.getConnection(

           "jdbc:mysql://wes:3306/umpdb?useUnicode=true&characterEncoding=GBK", "root", "elite");

       File f1 = new File("Account.jrxml");

       File f2 = new File("Contact.jrxml");

       JasperReport main = JasperCompileManager.compileReport(f1

           .getAbsolutePath());

       JasperReport report = JasperCompileManager.compileReport(f2

           .getAbsolutePath());

       Map props = new HashMap();

       props.put("subreport", report);

       JasperPrint print = JasperFillManager.fillReport(main, props,con);

       //JasperPrintManager.printReport(print,true);

       JasperExportManager.exportReportToPdfFile(print, "a.pdf");

       //JasperRunManager.runReportToPdfFile("Account.jasper", "a.pdf", props, con);

     } catch (ClassNotFoundException e) {

       // TODO 自动生成 catch 块

       e.printStackTrace();

     } catch (SQLException e) {

       // TODO 自动生成 catch 块

       e.printStackTrace();

     } catch (JRException e) {

       // TODO 自动生成 catch 块

       e.printStackTrace();

     }

   }

3 注意事项

1 .iReport 中新建中文报表的时候记得要输入XML 编码GB2312 。

2 .iReport 中定义中文字体的时候,要选择PDF Font Name 为STSong-Light (宋体)、MHei-Medium (黑体)、MSung-Light ,在PDF Encoding 中选择GB-UCS2-H(Chinese Simplified) ,否则输出到PDF 时会乱码。

3 .用Report SQL 查询之后,可能会出现某些字段没有自动建立Field ,就需要在Field 中手动定义了。

 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jaogun/archive/2010/01/23/5223458.aspx

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值