jasperreports是一款基于Java编写的开源报表系统,这个报表的使用数据可以来自任何类型的数据源,并且还能够生成像素级的文档,如果你需要一款开源的还用的报表生成软件,那么这款jasperreports将是非常不错的选择,你可以打印出各种问的那个格式,包括HTML、PDF、Excel等等。而且软件的报告模板可以以iReport之类的工具轻松制作,只要用户将报告存储为XML格式,就能够轻松的使用jasperreports进行阅读,然后还可以编译成.jasper档。
使用方法
一、新建报表
1、点击文件-new。
2、选择一个模版,【Openthis Template】。
3、通过【Browse】选择文件保存位置,并填写报表名称【Report name】
4、完成报表的新建。
二、创建Database Sources
1、点击【ReportDatasources】图标
2、点击右边的new。
3、选择一个datasourcetype,这里选【Database JDBC connection】。
4、填写数据库连续的相关信息,并保存。
5、勾选默认Datasources,并关闭窗口
怎么用
一,创建简单的jrxml文件
以上是一个简单的JRXML文件,实际上就是一个标准的XML文件,
是根元素,表示静态的数据,定义了的位置和宽度,定义了实际的静态数据。
二,把JRXML文件解析成jasper文件,文件流或JasperReport对象(根据实际情况)
1.建立一个WEB工程,再在WEBROOT目录下建立一个目录report
2.使用JasperCompileManager里面的方法解析JRXML文件成jasper文件,文件流或JasperReport对象
把JRXML文件parse,再complie成jasper文件
JasperCompileManager.compileReportToFile("WebRoot/report/jasperreports_demo.jrxml", "WebRoot/report/langhua.jasper");
或者生成JasperReport对象
public static JasperReport compileReport("WebRoot/report/jasperreports_demo.jrxml")
或者以流的方法生成
public static void compileReportToStream(InputStream inputStream,OutputStream outputStream)
当然JasperCompileManager也可以把Jasper文件变成JRXML的(包括JRXML流,都是静太的方法)
writeReportToXmlStream
writeReportToXmlFile
三,有了JasperReport对象,文件流或jasper文件之后,就可以用JasperFillManager生成JasperPrint对象,jrprint文件,jrprint文件流
如下
生成JasperPrint 对象
public static JasperPrint fillReport(JasperReport jasperReport,Map parameters, JRDataSource dataSource)
生成其它
//生成文件
public static void fillReportToFile(
\tString sourceFileName,
\tString destFileName,
\tMap parameters,
\tConnection connection
\t)
//文件流
public static void fillReportToStream(
\tJasperReport jasperReport,
\tOutputStream outputStream,
\tMap parameters,
\tConnection connection
\t)
第四步,使用JasperExportManager导出或显示
JasperExportManager.exportReportToHtmlFile(jasperPrint, "c://1.html");
JasperExportManager.exportReportToPdfFile(jasperPrint, "c://1.pdf");
//还有很多方法的
完整的例子
JasperReport jasperReport;
JasperPrint jasperPrint;
try{
jasperReport = JasperCompileManager.compileReport("WebRoot/report/jasperreports_demo.jrxml");
jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(),new JREmptyDataSource());
JasperExportManager.exportReportToPdfFile(jasperPrint, "c://1.pdf");
}
catch (JRException e){
e.printStackTrace();
}
0条评论