birt 定时生成报表
来源:百度文库 编辑:神马文学网 时间:2024/10/03 03:40:59
b/s下的birt定时生成报表功能。
先写一个TimerServlet,web.xml配置如下:
TimerServlet代码如下:
package com.test;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.birt.core.exception.BirtException;
import org.eclipse.birt.core.framework.IPlatformContext;
import org.eclipse.birt.core.framework.Platform;
import org.eclipse.birt.core.framework.PlatformServletContext;
import org.eclipse.birt.report.engine.api.EngineConfig;
import org.eclipse.birt.report.engine.api.EngineConstants;
import org.eclipse.birt.report.engine.api.HTMLRenderOption;
import org.eclipse.birt.report.engine.api.IReportEngine;
import org.eclipse.birt.report.engine.api.IReportEngineFactory;
import org.eclipse.birt.report.engine.api.IReportRunnable;
import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
public class TimerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private String runTime;
private String pattern;
private ServletContext sc ;
public TimerServlet() {
super();
}
public void init(ServletConfig config) throws ServletException {
sc = config.getServletContext();
System.out.println("sc "+sc);
runTime = config.getInitParameter("runTime");
// runTime="2009-05-03 21:42";
pattern ="yyyy-MM-dd hh:mm";
SimpleDateFormat format = new SimpleDateFormat(pattern);
Calendar cal = Calendar.getInstance();
try {
cal.setTime(format.parse(runTime));
Timer t = new Timer();
t.schedule(new TimerTask(){ //这里我new了一个匿名类,做为schedule的第一个参数
@Override
public void run() {
runReport(); //当前时间是我们指定的时间时执行运行报表这个方法
}
}, cal.getTime()); //cal.getTime()这是schedule的第二个参数
} catch (ParseException e) {
e.printStackTrace();
}
}
private void runReport() {
IReportEngine birtEngine = null;
EngineConfig config = null;
config = new EngineConfig();
config.setEngineHome("");
IPlatformContext context = new PlatformServletContext(sc);
config.setPlatformContext(context);
try {
Platform.startup(config);
} catch (BirtException e) {
e.printStackTrace();
}
IReportEngineFactory factory = (IReportEngineFactory) Platform
.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);
birtEngine = factory.createReportEngine(config);
IReportRunnable design;
try
{
design = birtEngine.openReportDesign( sc.getRealPath("/Reports")+"/test2.rptdesign" );
IRunAndRenderTask task = birtEngine.createRunAndRenderTask( design );
task.getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, TimerServlet.class.getClassLoader());
HTMLRenderOption options = new HTMLRenderOption();
options.setOutputFileName(sc.getRealPath("/output")+"/test2.pdf" ); //生成pdf文件保存在output文件夹里。
options.setOutputFormat("pdf");
options.setHtmlRtLFlag(false);
options.setEmbeddable(false);
task.setRenderOption(options);
task.run();
task.close();
System.out.println("success!");
}catch (Exception e){
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
super.doGet(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
super.doGet(request, response);
}
}
birt 定时生成报表
BIRT报表
BIRT:基于 Eclipse 的报表
我的第一个birt报表
使用JFreeReport生成报表
基于java的开源报表系统 BIRT
利用iText在JSP中生成PDF报表
如何利用iText在JSP中生成PDF报表
BIRT World: BIRT 1.0.1 Feature Set
Eclipse BIRT使用之BIRT Designer篇
JDBC编程技术,我们就可以方便地将数据库中的数据导出生成Excel报表
VC中调用EXECL模板生成报表 - SEUU的专栏 - CSDN博客
使用PowerDesigner 11自己的模板生成数据字典报表-竹子 QQ:3777854...
Eclipse BIRT使用之BIRT Designer篇 - 诗特林-sterning - BlogJava
水晶报表
吃透报表
看报表
水晶报表
定时清理
定时关机
定时关机
抢先看BIRT的交叉表(Crosstab)
ireport jasperreports报表
报表汇总新方法