iReport & JasperReport配置?qing)用L(fng)明手?/a>
iReport & JasperReport配置?qing)用L(fng)明手? -
关于iReport和JasperReport的简明手?/p>
By Gem 伍子?/p>
1安装
1.1 iReport的安?/h2>
iReport直接解压后,?font size="+0">J2SDK\lib
目录下的tools.jar拯?font size="+0">iReport\lib目录下,然后?font size="+0">iReport目录下运?font size="+0">iReport.bat卛_?br />
需要注意的?font size="+0">tools.jar的版本必要与本机安装的jre一_(d)也就是说Q如果系l安装的?font size="+0">jre1.4.2必ȝjdk1.4.2?font size="+0">tools.jar?br />
1.2 JapserReport开发(q行Q环境的搭徏
JasperReport的开发环境必要导入以下所有包Q?/p>
1Q?nbsp; JasperReport包,?font size="+0">jasperreports-0.6.1.jarQ?/p>
2Q?nbsp; Aparche Common包,包括logging?font size="+0">digester?font size="+0">beanutils?font size="+0">collections?font size="+0">logging-apiQ?/p>
3Q?nbsp; iText包,包括itext-1.1.jar?font size="+0">iTextAsian.jarQ用于输Z文字W到PDF文gQ?/p>
以上所有包Q除?font size="+0">iTextAsian.jarQ都已经包含?font size="+0">iReport\lib目录下?/p>
?font size="+0">iReport2 开发流E?/h1>
jrxml文g通过Jasper~译之后变成了jasper文gQ这份文件才是真正在E序中调用生成报表的report文g?/p>
但是有一点要注意的是Q?font size="+0">jasper的各个版本编译出来的jasper文gq不兼容Q就是说?font size="+0">0.6.1版编译出来的文g?font size="+0">0.6.4版调用是?x)出错的Q?font size="+0">iReport自带?font size="+0">Jasper版本?font size="+0">0.6.1Q?font size="+0">jasper的最新版本是0.6.4。所以ؓ(f)了保持通用性,我徏议只?font size="+0">iReport来开发编?font size="+0">jrxml文gQ而不~译?font size="+0">jasper文gQ在我们的打印报表程序中再即时编译一ơ。虽然这h率可能会(x)低了一点,但是保证了不同版本的兼容性?/p>
在我们的E序中,要调?font size="+0">Jasper的话Q首先要得到一个数据库?font size="+0">ConnectionQŞ如:(x)Connection con = ...
需要往JasperReport传参数的话只需要新Z?font size="+0">MapQ以参数名作?font size="+0">keyQ需要传入的对象作ؓ(f)valueQ譬如:(x)
Map props = new HashMap();
props.put("name", new String("name"));
需要多个参数只需分别putq?font size="+0">Map里去可以了?/p>
JasperReport有如下几个主要的ManagerQ?/p>
?font size="+0">jrxml文g~译?font size="+0">jasper文g?font size="+0">JasperReport对象 从数据源中获取数据ƈ填充jasper文g?font size="+0">JasperReport对象Q?font size="+0">JasperPrint对象 ?font size="+0">JasperPrint对象直接输出到打印机打印 ?font size="+0">JasperPrint对象导出?font size="+0">PDF?font size="+0">HTML文gQ或) q行一?font size="+0">jasper文g?font size="+0">JasperReport对象q输出到PDF?font size="+0">Html文gQ或)中,我的理解是等于集成了JasperFillManager?strong>JasperExportManager的功?/p>
对于上述对象的详l说明请参阅JasperReport的文档?/p>
例程Q?/p>
例程Q?
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 ?/p>
e.printStackTrace(); } catch (SQLException e) { // TODO 自动生成 catch ?/p>
e.printStackTrace(); } catch (JRException e) { // TODO 自动生成 catch ?/p>
e.printStackTrace(); } } 1Q?font size="+0">iReport 2Q?font size="+0">iReport
JasperCompileManager
JasperFillManager
JasperPrintManager
JasperExportManager
JasperRunManager
3 注意事项
3Q用Report SQL查询之后Q可能会(x)出现某些字段没有自动建立FieldQ就需要在Field中手动定义了?/p>
posted on 2006-12-04 18:28 Tom 阅读(1169) 评论(0) ~辑 收藏 所属分c? 报表工具 ?a href="http://www.aygfsteel.com/43880800/category/19348.html">Appfuse