JasperReport的入门
用了几天的JasperReport,写下一点东西,希望对于入门JasperReport的同仁们有所帮助。
如何制作jasperReport,不走一般如下:
第一步:创建一个数据模板,用来填充数据并表现出来。而对于模板则我们使用Ireport进行编写,我用的版本是Ireport-2.0.53版本,你只需在Ireport空白document中拖拖相应的StaticText,TextField等,保存文件是以.jrxml为后缀,是一个xml文件。在编写相应模板时,需生成相应的Parameters、Field、Variables,用于数据关联。对于Barcode的类型,只需把Barcode Expression 设置相应的参数即可,如$P{secondLM}。
第二步:创建好.jrxml模板后,需把此模板编译为一个.Jasper文件,这是一个二进制文件.这个文件可以Ireport中编译,也可已在使用时进行编译,但如果.jrxml不怎么改变的情况下,最后用Ireport编译以后在使用,这样效率高一点。用jasperreports进行编译的话,需要写相应的代码,首先需要应用net.sf.jasperreports包,网上有的下。
private String docPath = "E:\\iReport-2.0.53\\";
private String jrxmlFile = docPath + "Runcard.jrxml";//模板文件
private String jrprintFile = docPath + "Runcard.jasper";//编译后的文件
private List mainList = null;
private JRDataSource jrdsMain = null;
mainList = MESReportManager.GetRunCardPro(3l);//返回相应的List
this.jrdsMain = new JRBeanCollectionDataSource(this.mainList);//把List转换为Jasper的数据源
Map mp = MESReportManager.GetRunCardWafer(3l);//返回Map
JasperCompileManager.compileReportToFile(jrxmlFile, jrprintFile);//编译
第三步:填充数据,对于相应的.Jasper,需要填充数据,我们就继续沿上面的列子讲下去:
JasperReport jasperReport=(JasperReport)JRLoader.loadObject(jrprintFile);//取相应.jasper模板
JasperPrint print = JasperFillManager.fillReport(jasperReport, mp, jrdsMain);//填充数据,这边Map,和类似于List,这里面的数据源在定义模板时需要一一对应,我编写的时候是这样的,具体还有什么,暂时不太清楚,你可以尝试一下。填充数据也可以在.jrxml文件中嵌入SQL语句,二创建一个自己的数据源,我们现在采用的是后者。
第四步:将数据显示出来,
JasperReport很明显可以将数据存储为PDF,xls,html等.我这边采用的是.pdf,并实现生成。
net.sf.jasperreports.engine.JRExporter exporter=new JRPdfExporter();
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, "C:\\Runcard.pdf");
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.exportReport();

浙公网安备 33010602011771号