jasperreport和ireports学习文档

Jasper笔记

一.学会ireports

1.      目前ireport的版本是4.6.0版本在生成的ireport的xml文件中有一个特定的属性,uuid这个编号。而在eclipse中不能识别这个属性。当移植在eclipse中的时候删掉这个uuid的时候才能行。

2.      页面布局方面,如果要想让column这一列进行显示在上面,我们要在page页面属性float column foder进行选中,然后就可以进行设置各个类型(title,page header。。。)的高度的设置,进行格式上得调整。

3.      创建数据连接,在打开的页面上工具图标上有一个图标,进行点击创建数据(fields),但是创建的数据源可以有几种,一种是直接连接数据库,但是首先要穿件数据源;二种是javabean的这种数据,但是首先要创建一个javapath路径,但是这个路径必须在build路径下得class包中。

4.      讲解一下工具工具栏的一个菜单的用法,preview这个工具栏,这个工具栏就是各种显示界面的类型。

5.      创建一个新的jrxml文件,在打开页面的文件—new—reports这样建立一个新的jrxml文件。

6.      如果要在新的jrxml文件上创建图形分析图的话,打开窗口菜单栏的下的组件面板,直接选择上面的控件往你要进行数据显示的区域。

7.      各个区域的介绍:tite 是表示该报表的头部信息,但是这个信息只有第一页显示,其他页面不在显示。Page header 表示文章的作者信息或其其他说明的,也是第一页有效,detail这个就是数据进行循环显示的内容。表示这个数据有多少个对象就要显示几次。(一般进行最后分析的结果建议不要放在这个选择框中),column footer这个框表示只显示一列。

8.      给各种图像进行填充数据,在该图上单击右键(char set),进行填充数据。

(主要的具体操作还是要查看官方文档和其他学习文档)

 

二.学会在eclipse上安装插件插件的的路径:htt://jasperwave/update-site/

基本操作和irePORTS的操作差不多,要细细去研究。

 

三.学会看懂jrxml的文件

具体看是jrxml的头文件,对于每一组件都要进行识别

 

四.结合eclipse进行打印输出图形

方式一:(通过struts进行配置)

情况一:已经生成.jasper文件

         <actionname=”” class=”” method=””>

                   <resultname=”success” type=”jasper”>

                            <param name=”location”>

                                     /**/***.jasper//表示jasper的保存文件夹

</param>

<param name=”dataSource”>

         ***//表示一个list列表的集合

<param>

<param name=”format”>

PDF//表示格式(HTML,XML,RTF….)

</param>

                   </result>

         </action>

 

情况二:只有jrxml文件

首先:在action中进行处理jrxml文件转换成jasper文件

Tage = userdao.t…..;

String reportSoure =ServletActionContext.getServletContext().getRealPath(“/**/**.jrxml”);

         Fileparent = new File(reportSoure).getParentFile();

         JasperCompileManager.compileReportToFile(reportSoure,newFile(parent,”**.jasper”).geAbsolutePath());

         其次:就是进行进行上面情况一的步骤

 

方式二:(通过通用的一个格式转换类来进行转换)

在action中写上

tage = userdao.TService();
System.out.println("-----------=============--------------"
+ tage.size());
JRBeanCollectionDataSource dataSouce = new JRBeanCollectionDataSource(
tage);
System.out.println(LoginAction.class.getResource("/").toString()
.substring(6));

JasperReport jasperReport = (JasperReport) JasperCompileManager
.compileReport(LoginAction.class.getResource("/")
.toString().substring(6)
+ "Test.jrxml");

Map parameters = new HashMap();

JasperPrint jasperPrint = JasperFillManager.fillReport(
jasperReport, parameters, dataSouce);

ExportReport.exportToHTML1(jasperPrint);

 

另外创建一个处理类 :ExportReport.java

package com.shop.util;

 

import javax.servlet.http.HttpServletRequest;

 

import org.apache.struts2.ServletActionContext;

 

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JRExporterParameter;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.export.JRHtmlExporter;

importnet.sf.jasperreports.engine.export.JRHtmlExporterParameter;

import net.sf.jasperreports.engine.export.JRPdfExporter;

import net.sf.jasperreports.engine.export.JRPdfExporterParameter;

import net.sf.jasperreports.engine.export.JRRtfExporter;

import net.sf.jasperreports.engine.export.JRXlsExporter;

importnet.sf.jasperreports.engine.export.JRXlsExporterParameter;

import net.sf.jasperreports.engine.export.JRXmlExporter;

 

public class ExportReport {

    /**

     * 导出html

     * @param jasperPrint

     * @return

     */

    public staticString exportToHTML(JasperPrint jasperPrint){

       HttpServletRequestrequest = ServletActionContext.getRequest();

       StringBuffersb = new StringBuffer();

       try {

           JRHtmlExporterexporter = new JRHtmlExporter();

           exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);

           exporter.setParameter(JRExporterParameter.OUTPUT_STRING_BUFFER,sb);

       exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,request.getContextPath()+"/WebContent/images?image=");

           //报表边框图片设置IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE,不使用图片

          exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);

           exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING,"UTF-8");

      

           exporter.exportReport();

       } catch(JRException e) {

           // TODOAuto-generated catch block

           e.printStackTrace();

       }

       returnsb.toString();

    }

   

    /**

     * 导出html

     * @param jasperPrint

     * @return

     */

    public staticvoid exportToPDF(JasperPrint jasperPrint){

       try {

           JRPdfExporterpdfexporter = new JRPdfExporter();

           pdfexporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);

            //如果保存到硬盘用下面语句

            pdfexporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,"D:/mypdf.pdf");

           pdfexporter.setParameter(JRPdfExporterParameter.IS_ENCRYPTED,Boolean.FALSE);

           pdfexporter.setParameter(JRExporterParameter.CHARACTER_ENCODING,"UTF-8");

           pdfexporter.exportReport();

       } catch (JRExceptione) {

           // TODOAuto-generated catch block

           e.printStackTrace();

       }

    }

    /**

     * 导出RTF

     * @param jasperPrint

     * @return

     */

    public staticvoid exportToRTF(JasperPrint jasperPrint){

       try {

           JRRtfExporterrtfExporter=new JRRtfExporter();

           rtfExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);

           //设置导出文件名

           rtfExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,"D:/myrtf.rtf");

           rtfExporter.setParameter(JRExporterParameter.CHARACTER_ENCODING,"UTF-8");

           rtfExporter.exportReport();

       } catch(JRException e) {

           // TODOAuto-generated catch block

           e.printStackTrace();

       }

    }

    /**

     * 导出xml

     * @param jasperPrint

     * @return

     */

    public staticvoid exportToXML(JasperPrint jasperPrint){

       try {

           JRXmlExporterxmlExporter=new JRXmlExporter();

           xmlExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);

           xmlExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,"D:/myxml.xml");

           xmlExporter.setParameter(JRExporterParameter.CHARACTER_ENCODING,"UTF-8");

           xmlExporter.exportReport();

 

       } catch(JRException e) {

           // TODOAuto-generated catch block

           e.printStackTrace();

       }

    }

    /**

     * 导出Excel

     * @param jasperPrint

     * @return

     */

    public staticvoid exportToExcel(JasperPrint jasperPrint){

       try {

           JRXlsExporterjrXlsExporter=new JRXlsExporter();

           jrXlsExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);

           //设置输出流

           jrXlsExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,"D:/myexcel.xls");

           jrXlsExporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.FALSE);

           jrXlsExporter.setParameter(JRExporterParameter.CHARACTER_ENCODING,"UTF-8");

           jrXlsExporter.exportReport();

       } catch(JRException e) {

           // TODOAuto-generated catch block

           e.printStackTrace();

       }

    }

   

    /**

     * 输出指定的html的文件

     * @param jasperPrint

     */

    public staticvoid exportToHTML1(JasperPrint jasperPrint){

       HttpServletRequestrequest = ServletActionContext.getRequest();

       Stringa=request.getRealPath("/");

       System.out.println(a);

//     StringBuffersb = new StringBuffer();

       try {

           JRHtmlExporterexporter = new JRHtmlExporter();

           exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);

           exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,a+"show/my.html");

           //exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"./images?image=");

           //报表边框图片设置IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE,不使用图片

          exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE);

          exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING,"UTF-8");

      

           exporter.exportReport();

       } catch(JRException e) {

           // TODOAuto-generated catch block

           e.printStackTrace();

       }

      

    }

 

}

 

 

 

 

 

 

 

 

 

 

 

写:小林

邮箱:goodleft88@gmail.com

请各位读者谅解,刚刚初学,有些比较含糊,具体内容需要参考官方API


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值