在上文中,我们说到了如何定时来运行一段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" οnlοad="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@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11677396/viewspace-976994/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11677396/viewspace-976994/