在企业应用系统中,经常要输出各种格式的数据报表。著名的开源项目JasperReports可以很好的解决这个问题。使用 JasperReports可以在预先设定好格式的报表基础上进行数据的填充并可导出各种格式的报表。下图说明了JasperReports报表生成的基本步骤:
[img]http://dl.iteye.com/upload/attachment/161657/3352d12e-be94-3f05-b4eb-060b6c1a7342.jpg[/img]
1. 扩展名为.jrxml的文件为标准的xml文件,该文件定义了报表的格式和数据构成。可以通过jasperReports的“黄金搭档”iReport以可视化的方式生成并编辑这个文件。
2. jrxml文件经过JasperReports API 编译后将生成扩展名为.jasper的二进制文件。
3. 可以调用JasperReports API针对jasper文件进行数据和参数的填充,生成扩展名为.jrprint的文件。
4. 调用JasperReports API可以将jrprint文件最终导出成PDF、Excel、Html等各种格式的文件。
这里我们采用最简单的静态报表为例,没有引入外部数据,目的是希望让大家了解JasperReports的使用步骤。
1.我们需要创建一个报表模板
当然这一步往往是通过ireport(JasperReports的报表编辑器)
demo.jrxml
2.我们需要对报表模板进行编译。
当然这里一般也是有irport去完成。
3.下面我们就可以引用编译后的报表文件,进行pdf,html的生成。
[img]http://dl.iteye.com/upload/attachment/161661/48fc5f76-84e8-375c-ac0b-07981316d89b.jpg[/img]
这样一个简单的报表流程完成了。
[img]http://dl.iteye.com/upload/attachment/161657/3352d12e-be94-3f05-b4eb-060b6c1a7342.jpg[/img]
1. 扩展名为.jrxml的文件为标准的xml文件,该文件定义了报表的格式和数据构成。可以通过jasperReports的“黄金搭档”iReport以可视化的方式生成并编辑这个文件。
2. jrxml文件经过JasperReports API 编译后将生成扩展名为.jasper的二进制文件。
3. 可以调用JasperReports API针对jasper文件进行数据和参数的填充,生成扩展名为.jrprint的文件。
4. 调用JasperReports API可以将jrprint文件最终导出成PDF、Excel、Html等各种格式的文件。
这里我们采用最简单的静态报表为例,没有引入外部数据,目的是希望让大家了解JasperReports的使用步骤。
1.我们需要创建一个报表模板
当然这一步往往是通过ireport(JasperReports的报表编辑器)
demo.jrxml
<?xml version="1.0"?>
<!DOCTYPE jasperReport
PUBLIC "-//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="FirstReport">
<detail>
<band height="20">
<staticText>
<reportElement x="20" y="0" width="200" height="20" />
<text><![CDATA[If you don't see this, it didn't work]]></text>
</staticText>
</band>
</detail>
</jasperReport>
2.我们需要对报表模板进行编译。
当然这里一般也是有irport去完成。
JasperCompileManager.compileReportToFile("demo.jrxml", "demo.jasper");
3.下面我们就可以引用编译后的报表文件,进行pdf,html的生成。
JasperPrint jasperPrint = JasperFillManager.fillReport("demo.jasper", new HashMap(),new JREmptyDataSource());
JasperExportManager.exportReportToHtmlFile(jasperPrint, "c://demo.html");
JasperExportManager.exportReportToPdfFile(jasperPrint, "c://demo.pdf");
[img]http://dl.iteye.com/upload/attachment/161661/48fc5f76-84e8-375c-ac0b-07981316d89b.jpg[/img]
这样一个简单的报表流程完成了。