轻松每一天

暂无签名

  • 博客访问: 93548
  • 博文数量: 4
  • 用 户 组: 普通用户
  • 注册时间: 1970-01-01 08:00
个人简介

鏆傛棤浠嬬粛

ITPUB论坛APP

ITPUB论坛APP



APP发帖 享双倍积分

文章分类
文章存档

2007年(4)

我的朋友
微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题

分类: Java技术

在上文中,我们说到了如何定时来运行一段java程序,现在就可以与快逸报表的API运算接合在一起了。
先看看快逸的核心API图,它实际上给了我们一个编程来运算报表的思路。

api核心类图
=700) window.open('http://bbs.quiee.com.cn/attachment/5_291_59a236a94a8e128.gif');" src="http://bbs.quiee.com.cn/attachment/5_291_59a236a94a8e128.gif" width="700" onload="if(this.width>'700')this.width='700';if(this.height>'700')this.height='700';" border="0" />

ok,根据这个图,我们就可以写java代码来运算报表了。
public static void run() throws Exception{
String reportFile = "E:/Projects/web4.runqian.com.cn/WebRoot/reportFiles/code/1/1.1/1.1.5/myreport.raq"; //报表文件
String exportFile = "E:/temp/myreport.htm"; //导出的文件
//注意,这里是服务器的授权文件,如果是客户端的授权文件,请安装加密狗驱动程序
String lisenseFile = "E:/Projects/web4.runqian.com.cn/WebRoot/WEB-INF/润乾开发svr开发版.lic"; //授权文件

//第一步,读取报表模板
ReportDefine rd = (ReportDefine) ReportUtils.read( reportFile );

//第二步,设置报表授权文件,运算报表
ExtCellSet.setLicenseFileName( lisenseFile );
Context context = new Context();
Engine enging = new Engine( rd, context);
IReport iReport = enging.calc();

//第三步,保存为html文件,注意,这是我们用邮件发送的对象
HtmlReport hReport = new HtmlReport( iReport,"report1" );
FileOutputStream fos = new FileOutputStream( exportFile );
String html = hReport.generateHtml();
fos.write( html.getBytes() );
}

根据以上分析的,我们写出整体的程序。
package one;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.util.Timer;
import java.util.TimerTask;

import com.runqian.report4.model.ReportDefine;
import com.runqian.report4.model.engine.ExtCellSet;
import com.runqian.report4.usermodel.Context;
import com.runqian.report4.usermodel.Engine;
import com.runqian.report4.usermodel.IReport;
import com.runqian.report4.view.html.HtmlReport;
import com.runqian.report4.util.*;

public class RunReoprtInTime {

String exportFile = "E:/temp/myreport.htm"; //导出的文件
private final Timer timer = new Timer();
private final int minutes;

public RunReoprtInTime(int minutes) {
this.minutes = minutes;
}

public void start() {
timer.schedule(new TimerTask() {
public void run() {
runReport();
}

private void runReport() {
System.out.println("Your report is runing!");
try{
RunReoprtInTime.run();
}catch(Exception ex){
ex.printStackTrace();
}
}
//设置一小时运行一次
}, minutes * 1 * 1000 , minutes * 60 * 1000);
}


public static void run() throws Exception{
String reportFile = "E:/Projects/web4.runqian.com.cn/WebRoot/reportFiles/code/1/1.1/1.1.5/myreport.raq"; //报表文件

//注意,这里是服务器的授权文件,如果是客户端的授权文件,需要安装加密狗驱动程序
String lisenseFile = "E:/Projects/快逸授权.lic"; //授权文件

//第一步,读取报表模板
ReportDefine rd = (ReportDefine) ReportUtils.read( reportFile );

//第二步,设置报表授权文件,运算报表
ExtCellSet.setLicenseFileName( lisenseFile );
Context context = new Context();
Engine enging = new Engine( rd, context);
IReport iReport = enging.calc();

//第三步,保存为html文件
HtmlReport hReport = new HtmlReport( iReport,"report1" );
FileOutputStream fos = new FileOutputStream( exportFile );
String html = hReport.generateHtml();
fos.write( html.getBytes() );
}


public static void main(String[] args) {
RunReoprtInTime eggTimer = new RunReoprtInTime(1);
eggTimer.start();
}
}

好了,我们已经在硬盘上定时生成HTML报表了,怎么发送这个报表是明天我们理论。。

http://blog.programfan.com/blog.asp?author=by_ts by_ts

[@more@]
阅读(285533) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册