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

 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"));
需要多个参数只需分别putMap里去就可以了。
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 注意事项1iReport中新建中文报表的时候记得要输入XML编码GB2312
2iReport中定义中文字体的时候,要选择PDF Font NameSTSong-Light(宋体)、MHei-Medium(黑体)、MSung-Light,在PDF Encoding中选择GB-UCS2-H(Chinese Simplified),否则输出到PDF时会乱码。
3.用Report SQL查询之后,可能会出现某些字段没有自动建立Field,就需要在Field中手动定义了。
本文标签:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值