- 浏览: 102189 次
- 性别:
- 来自: 合肥
-
文章分类
- 全部博客 (31)
- birt (26)
- linux (0)
- window (0)
- jsp (0)
- glassfish (0)
- tomcat (0)
- WAS (0)
- WAS CE (0)
- dwr (0)
- spring (0)
- struts (0)
- j2se (0)
- eclipse (0)
- Lotus Widget Factory (0)
- IBM Portal (2)
- WebSphere Portlet Factory (0)
- extjs (0)
- jquery (0)
- prototypejs (0)
- css (1)
- html (1)
- javafx (0)
- javascript (0)
- db2 (0)
- Ldap (0)
- mysql (0)
- oracle (0)
- sql (0)
- javamail (0)
- 其他 (1)
最新评论
-
iris_1992:
2005年以前,国外开源报表完全碾压国产软件,但是现在国内软件 ...
birt标签的使用 -
favoriteName:
你好 我想请问下 参数类型可以是个数据集么?
birt动态设置要显示的图表数据 -
banana8822:
搞定了,楼主好人,一生平安
birt 从配置文件读取数据库信息 -
banana8822:
“在新建的数据源beforeopen里写:”,beforeop ...
birt 从配置文件读取数据库信息 -
段箭*残箫:
dnje2006 写道如果没查出数据 ,直接 列出 一个 为零 ...
交叉表没有数据显示为零的操作
今天我先说在CS程序中如何定时生成报表,
代码如下:
package com;
import java.util.Timer;
import java.util.TimerTask;
import java.util.logging.Level;
import org.eclipse.birt.core.framework.Platform;
import org.eclipse.birt.report.engine.api.EngineConfig;
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;
import org.eclipse.birt.report.engine.api.PDFRenderOption;
public class TimerTest {
private int i; //设定这个i是方便我测试的,后面会说到。
private void timeTest(){
Timer t = new Timer(); //构造定时器
t.schedule(new MyTask(), 0,1000); //执行任务。表示立即执行,并隔1秒后再次执行
}
public static void main(String args[]){
new TimerTest().timeTest();
}
private class MyTask extends TimerTask{
@Override
public void run() {
i++;
runReport(i); //运行报表
}
}
private void runReport(int i) {
IReportEngine engine=null;
EngineConfig config = null;
try{
config = new EngineConfig( );
config.setBIRTHome("F:/language/report/birt/soft/birt-runtime-2_3_0/birt-runtime-2_3_0/ReportEngine"); //这是CS程序,直接设置birthome
Platform.startup( config );
IReportEngineFactory factory = (IReportEngineFactory) Platform
.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
engine = factory.createReportEngine( config );
IReportRunnable design = null;
//Open the report design
design = engine.openReportDesign("reports/test2.rptdesign"); //打开这个已经写好的报表文件
IRunAndRenderTask task = engine.createRunAndRenderTask(design);
task.setParameterValue("id", i); //设置报表参数为i(这个i第次会加1,上面写i++了。)
HTMLRenderOption options = new HTMLRenderOption();
options.setOutputFileName("output/test"+i+".pdf"); //设置生成的pdf名称,动态的。
options.setOutputFormat("pdf"); //设置显示格式为pdf,可以改成html
options.setHtmlRtLFlag(false);
options.setEmbeddable(false);
task.setRenderOption(options);
task.run();
System.out.println("succuess");
task.close();
engine.destroy();
}catch( Exception ex){
ex.printStackTrace();
}
finally
{
Platform.shutdown( );
}
}
}
就这么简单报表会每隔一秒终运行一次,并把参数设置成不同,在保存的pdf里可能查看到参数的变化。
说明:.test2.rptdesign这是个随便建立的报表,我这里传了个参数,没多大用,
但我演示了很重要的东西,就是设置参数,我们的报表运行可能是要传动态参数的,在这里就可以设置了。
不早了,我先写这篇吧,有时候写下篇,在web工程里定时生成报表。
代码如下:
package com;
import java.util.Timer;
import java.util.TimerTask;
import java.util.logging.Level;
import org.eclipse.birt.core.framework.Platform;
import org.eclipse.birt.report.engine.api.EngineConfig;
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;
import org.eclipse.birt.report.engine.api.PDFRenderOption;
public class TimerTest {
private int i; //设定这个i是方便我测试的,后面会说到。
private void timeTest(){
Timer t = new Timer(); //构造定时器
t.schedule(new MyTask(), 0,1000); //执行任务。表示立即执行,并隔1秒后再次执行
}
public static void main(String args[]){
new TimerTest().timeTest();
}
private class MyTask extends TimerTask{
@Override
public void run() {
i++;
runReport(i); //运行报表
}
}
private void runReport(int i) {
IReportEngine engine=null;
EngineConfig config = null;
try{
config = new EngineConfig( );
config.setBIRTHome("F:/language/report/birt/soft/birt-runtime-2_3_0/birt-runtime-2_3_0/ReportEngine"); //这是CS程序,直接设置birthome
Platform.startup( config );
IReportEngineFactory factory = (IReportEngineFactory) Platform
.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
engine = factory.createReportEngine( config );
IReportRunnable design = null;
//Open the report design
design = engine.openReportDesign("reports/test2.rptdesign"); //打开这个已经写好的报表文件
IRunAndRenderTask task = engine.createRunAndRenderTask(design);
task.setParameterValue("id", i); //设置报表参数为i(这个i第次会加1,上面写i++了。)
HTMLRenderOption options = new HTMLRenderOption();
options.setOutputFileName("output/test"+i+".pdf"); //设置生成的pdf名称,动态的。
options.setOutputFormat("pdf"); //设置显示格式为pdf,可以改成html
options.setHtmlRtLFlag(false);
options.setEmbeddable(false);
task.setRenderOption(options);
task.run();
System.out.println("succuess");
task.close();
engine.destroy();
}catch( Exception ex){
ex.printStackTrace();
}
finally
{
Platform.shutdown( );
}
}
}
就这么简单报表会每隔一秒终运行一次,并把参数设置成不同,在保存的pdf里可能查看到参数的变化。
说明:.test2.rptdesign这是个随便建立的报表,我这里传了个参数,没多大用,
但我演示了很重要的东西,就是设置参数,我们的报表运行可能是要传动态参数的,在这里就可以设置了。
不早了,我先写这篇吧,有时候写下篇,在web工程里定时生成报表。
评论
2 楼
zrs217
2010-08-26
貌似不行的,只能顺利执行一次,下一次就报错的!我测试了就是这样,原以为是时间间隔太短,我改成两分,还是在第二次报错的!
1 楼
chenhua_1984
2009-05-04
不错!收藏下!◎
发表评论
-
birt 表头排序
2009-09-21 10:21 4523主要思想就是在表头加超链接,链接到自己,给自己带一个order ... -
birt交叉表设置隔行变色
2009-07-03 17:28 4519效果如下图:没有进行多余的配色了,比较丑。呵呵。现在看看怎 ... -
birt动态设置要显示的图表数据
2009-07-01 18:03 7792实现的效果是在原有的chart图上再显示其他chart图。比如 ... -
birt标签的使用
2009-06-19 19:05 6933因为一直没有用标签, ... -
使用java生成数据集数据
2009-06-19 15:32 2934首先还是一样,新建个 ... -
birt 从配置文件读取数据库信息
2009-06-18 18:10 4004首先发点牢骚,不知道birt为什么这么设计,要新建jdbc ... -
交叉表没有数据显示为零的操作
2009-06-15 11:19 2088原始图像如下:如果想在空白处没有数据的地方显示为“0”,刚在摘 ... -
birt使用xml数据源
2009-06-11 17:42 2236此示例是从我的论坛里贴过来,如看不到图片,请到原站查看。 ... -
BIRT 2.5 Milestone 7 更新功能介绍
2009-06-09 22:17 2479文章从我的论坛里粘过 ... -
birt chart api手册
2009-06-03 15:51 2645birt chart 图的api手册,chm格式,不需要再从e ... -
birt api 手册
2009-06-03 15:49 2032自己从eclipse里把birt的文档分离出来,制作成chm格 ... -
动态分组
2009-05-26 13:42 1373页面选择不同的分组方式,通过参数传进来,我们如何动态的分组呢? ... -
birt设计X轴时间格式
2009-05-12 12:26 3583达到的效果是根据查询参数时间设置x轴时间显示,数据的东西我就不 ... -
birt 定时生成报表(下)
2009-05-03 22:46 529前两天我写了个c/s模式的birt定时生成报表,现在我们来看一 ... -
动态设置birt chart图标题
2009-04-28 12:28 2938在chart图的script里添加如下方法:function ... -
birt报表中每页下面显示页码
2009-04-24 18:11 5605显示页脚,然后在xml文件里将下面代码替换相应位置代码:< ... -
birt script的简单应用
2009-04-23 23:40 5382群里有兄弟问怎么把两个表格里相应单元格的数据相加在其中一个的相 ... -
birt动态参数的处理
2009-04-07 14:27 3790本例实现根据用户选择不同的查询条件查询显示报表。按我的报表业务 ... -
birt制作chart图
2009-03-24 12:19 4923发现群里的兄弟还有的不会使用birt制作chart图,所在现在 ... -
birt显示图片和没有图片时的提示
2009-03-23 11:00 2463这里我们想在报表里显示图片,当没有图片时则显示提示语“无图片” ...
相关推荐
这对于自动化数据备份、报表生成等场景尤其有用。 **5. 错误处理与监控:** 任何后台任务处理框架都应提供错误处理机制,包括日志记录、异常跟踪和通知。"dhwani_backend_task"可能会整合一些监控工具(如New Relic...
它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...
它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...
它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...
它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...
它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...