当前位置: 首页 > 工具软件 > Jasper > 使用案例 >

JasperReports入门

方坚壁
2023-12-01

一、Getting Started

            JasperReports的报表是用xml文件定义的,按照习惯这个xml文件以.jrxml作为扩展名,一个典型的jrxml文件包括下列元素:

1、<jasperReport>根元素
2、<title>它的内容只在报表开始时被打印一次
3、<pageHeader>它的内容在报表的每一页都被打印一次
4、<detail>报表的主体
5、<band>定义了一个报表区域,以上所有元素都包含一个
     band元素作为自己的子元素

二、除了根元素之外,所有的元素都是可选的
    
     下面是jrxml文件的一个简单的例子,它生成了一个简单的报表,这个报表仅仅打印出一个字符串"HelloWorld!"
 
  HelloWorld.jrxml
<?xml version="1.0"?>
<!DOCTYPE jasperReport
PUBLIC "-//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
    <jasperReport name="HelloWorld">
        <detail>
            <band height="20">
                <staticText>
                    <reportElement x="180" y="0" width="200" height="20"/>
                        <text><![CDATA[Hello World!]]</text>
                </staticText>
            </band>
        </detail>
    </jasperReport>

    说明:在这个例子中我们省略了可选的其他元素,<staticText>元素描述了报告中的静态文本,正如所看到的一样它有一个唯一的子元素<text>,这个元素定义了要被显示的文本。

三、程序

package purerock.jasper;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.*;
import net.sf.jasperreports.engine.util.JRLoader;
import java.io.*;
public class FirstJasperReports {
    static String fileName="HelloWorld.jrxml";
    public static void main(String[] args)throws Exception{
        long startTime=System.currentTimeMillis();
        //将报表的定义文件HelloWorld.jrxml编译成HelloWorld.jasper文件
        String jasperFile=JasperCompileManager.compileReportToFile(fileName);
        //向HelloWorld.jasper文件中填充数据,这一步将生产出HelloWorld .jrprint文件
        String jrprintFile=JasperFillManager.fillReportToFile(jasperFile,null,new JREmptyDataSource());
        //将.jrprint文件转换成HTML格式
        JasperExportManager.exportReportToHtmlFile(jrprintFile);
        //将.jrprint文件转换成PDF格式
        JasperExportManager.exportReportToPdfFile(jrprintFile);
        //将.jrprint文件转换成XML格式
        JasperExportManager.exportReportToXmlFile(jrprintFile,false);
        //将.jrprint文件转换成XLS格式(即Excel文件),需要用到POI类库.
        File sourceFile = new File(jrprintFile);
        JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
        File destFile = new File(sourceFile.getParent(), jasperPrint.getName() + ".xls");
        JRXlsExporter exporter = new JRXlsExporter();
        exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
        exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
        exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
        exporter.exportReport();
        long endTime=System.currentTimeMillis();
        long time=(endTime-startTime)/1000;
        System.out.println("success with "+time+" s");
     }
}

四、编译及运行程序所需要的类库

1、jasperreports-2.0.2.jar
2、commons-digester-1.7.jar
3、commons-collections-2.1.jar
4、commons-logging-1.0.2.jar
5、commons-beanutils-1.7.jar
6、itext-1.3.1.jar
7、poi-3.0.1-FINAL-20070705.jar

注、以上大多数jar文件都是apache开源组织的开源组件,我用的就是这些,版本号可以不一样。

五、运行程序可以看到JasperReports依据HelloWorld.jrxml文件自动为我们生成了各式各样的文件:html、pdf、xls、xml、jasper。

 

 

 类似资料: