jasperreport(4)

2020-02-22 12:56

脚本是一个java类,它用来执行指定的细节在打印期间。脚本中的一些方法被报表引擎的调用,当一些特殊的事件,像创建一个新页或者处理detail 行。

实现一个脚本得继承net.sf.jasperreports.engine.JRAbstractScriptlet类。 net.sf.jasperreports.engine.JRAbstractScriptlet的声明如下: package net.sf.jasperreports.engine; /**

* @author Teodor Danciu (teodord@users.sourceforge.net)

* @version $Id: JRDefaultScriptlet.java,v 1.3 2004/06/01 20:28:22 teodord Exp $ */

public class JRDefaultScriptlet extends JRAbstractScriptlet {

public JRDefaultScriptlet() { }

public void beforeReportInit() throws JRScriptletException { }

public void afterReportInit() throws JRScriptletException { }

public void beforePageInit() throws JRScriptletException { }

public void afterPageInit() throws JRScriptletException { }

public void beforeColumnInit() throws JRScriptletException { }

public void afterColumnInit() throws JRScriptletException {

}

public void beforeGroupInit(String groupName) throws JRScriptletException { }

public void afterGroupInit(String groupName) throws JRScriptletException { }

public void beforeDetailEval() throws JRScriptletException { }

public void afterDetailEval() throws JRScriptletException { } }

在ireport中如何配制脚本?

Ireport默认不使用脚本,我们可以如下操作,使它使用脚本。 首先新建一个报表文档,报表名TestScriptlet

然后点Edit -> Report Properties -> Scriptlet Class -> Use ireport internal scriptlet support

此时ireport已经使用了一个内部定义好的脚本,该脚本是个空壳子,没有实现任何功能。 我们也可以编辑该脚本类,如下操作:

点Edit -> Scriptlet Editor,此时会弹出一个编辑脚本类的窗口,找到该脚本构造方法,在构造方法中添加一条语句:System.out.println(“create scriptlet…”); 在构造方法下面添加一个max方法,整个代码如下所示: import net.sf.jasperreports.engine.*;

public class extends it.businesslogic.ireport.IReportScriptlet {

/** Creates a new instance of JRIreportDefaultScriptlet */ public () {

System.out.println(\}

public int max(int a,int b) { if(a>=b) return a; return b; } }

然后点Save保存,即创建了一个脚本,并再保存报表文件,此时你可以到报表文件目录找到一个TestScriptleScriptlet的java文件,这就是ireport自动生成的脚本类文件(脚本类名= 报表名+Scriptlet)。 在ireport中如何调用脚本?

在报表创建时jasperreports会自动创建脚本对象,并在生成脚本时,jasperreports会自动调用相应的脚本方法,自定义的方法需要我们手动调用才会执行。 例调用上面的max方法,可使用表达式:

((TestScriptletScriptlet)$P{REPORT_SCRIPTLET}).max ( 23,64) $P{REPORT_SCRIPTLET}返回当前报表的脚本类 大家可以根据以上表达式举一反三调用脚本。 在web项目中如何配制脚本?

当在web项目中使用脚本时,就不能按照上面的方式配制了,那样会找不到脚本类的。解决办法如下4步:

1.在ireport的lib目录下找到ireport.jar,将它引入到项目中。 2.将ireport自动生成的java文件复制到项目src目录下(打包也行)。 3.编译项目后,将该项目的classes目录添加到ireport的classpath中。

4.点Edit -> Report Properties -> Scriptlet Class -> Use this scriptlet class…,在下面的文本框输入脚本类名,如打了包,要输入包名,点OK,编译ireport。

7.子报表

未完待续...

8.图表(饼图,柱图,线图)

未完待续...

9.导出pdf,xls,html...

以下是我导出各种报表Servlet源代码,供大家参考! package servlet;

import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.HashMap; import java.util.Map;

import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import oracle.jdbc.driver.OracleDriver; import test.TestBeanDataSource;

import net.sf.jasperreports.engine.JRAbstractExporter; import net.sf.jasperreports.engine.JREmptyDataSource; import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JRExporterParameter; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.JasperRunManager; import net.sf.jasperreports.engine.base.JRBaseReport; import net.sf.jasperreports.engine.export.JExcelApiExporter; import net.sf.jasperreports.engine.export.JRHtmlExporter;

import net.sf.jasperreports.engine.export.JRHtmlExporterParameter; import net.sf.jasperreports.engine.export.JRXlsExporterParameter; import net.sf.jasperreports.engine.export.JRXmlExporter; import net.sf.jasperreports.engine.util.JRLoader; import net.sf.jasperreports.j2ee.servlets.ImageServlet;

publicclass ExportReportServlet extends HttpServlet { /**

*Destructionoftheservlet.
*/


jasperreport(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:精编新版《安全员》考试题库800题(答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: