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();

   

posted @ 2008-09-17 10:20  黄秋江  阅读(1935)  评论(0)    收藏  举报