`
huhuanqadn
  • 浏览: 101677 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

birt定时生成报表(上)

    博客分类:
  • birt
阅读更多
今天我先说在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工程里定时生成报表。
5
0
分享到:
评论
2 楼 zrs217 2010-08-26  
貌似不行的,只能顺利执行一次,下一次就报错的!我测试了就是这样,原以为是时间间隔太短,我改成两分,还是在第二次报错的!
1 楼 chenhua_1984 2009-05-04  
不错!收藏下!◎

相关推荐

    bird生成报表jar包 java生成excel报表

    自己写的java生成excel报表jar包,使用html中的table标签样式设计报表头部信息xml文件,接受list数据集生成excel报表。对结构不是太复杂的excel报表十分好用,有详细使用说明。不断完善中,欢迎提供意见和建议!(注...

    bird生成报表jar包 java生成excel报表(添加打印时间)

    自己写的java生成excel报表jar包,使用html中的table标签样式设计报表头部信息xml文件,接受list数据集生成excel报表。对结构不是太复杂的excel报表十分好用,有详细使用说明。最新添加了打印时间。

    thunderbird 邮件备份

    这些扩展通常提供一键备份、加密备份和定时备份等功能。 二、Thunderbird邮件导入导出 1. **导入备份文件** - **导入个人资料**:当你需要恢复备份时,只需将备份的个人资料文件夹替换到新的Thunderbird安装目录...

    FlappyBird游戏源码

    Bird的移动和跳跃通过物理引擎模拟,而Pipes则动态生成,形成无尽的飞行路线。 3. 碰撞检测:cocos2dx提供了矩形碰撞检测,用于判断Bird与Pipes是否发生碰撞。通过比较Bird的位置和Pipes的边界,实现游戏结束条件。...

    flappyBird素材包

    - pipe2_down.png 和 pipe2_up.png:这些是备用的管道图像,可能是为了增加游戏的多样性或实现随机生成的效果。开发者可能使用这些图像来改变管道的外观,让游戏看起来更加丰富和有趣。 3. 用户界面元素: - text...

    flappy_bird 素材资源

    2. **管道资源**:管道是Flappy Bird中的核心障碍物,分为上半部分和下半部分。玩家需要控制小鸟在管道之间穿梭。在Scratch中,可以创建两个不同的角色,分别代表管道的上下两部分,并设置它们的移动速度和位置,与...

    flappybird全套图片+音效

    《Flappy Bird游戏素材解析:图像与音效的全方位探讨》 Flappy Bird,这款曾经风靡全球的小游戏,以其简单却极具挑战性的玩法吸引了无数玩家。在学习游戏开发的过程中,掌握并理解游戏素材——尤其是图像和音效——...

    Flappy bird资源.zip

    这款游戏可能增加了多个角色的互动、动态生成的环境、更丰富的游戏机制,如射击、道具系统和敌我识别。在Unity中,这可能涉及到更多复杂的脚本编写,例如网络同步(如果是多人在线游戏)、AI行为控制(敌机的智能...

    flappybird图像音频资源包

    《Flappy Bird 图像音频资源解析》 在游戏开发领域,资源是构成游戏世界的基础,它们赋予游戏视觉和听觉的生动性。本资源包“flappybird图像音频资源包”便是针对经典游戏《Flappy Bird》而设计的,旨在为开发者...

    FlappyBird素材包

    管道的生成和移动算法是游戏逻辑的关键部分,需要精心设计以保持游戏难度的平衡。 3. **背景素材**:背景通常会有层次感,随着小鸟的飞行而滚动,创造出一种深度和运动感。开发者可以使用简单的滚动算法或者更复杂...

    Thunderbird的一套主题

    6. **兼容性和测试**:确保主题在不同版本的Thunderbird上表现良好是一项挑战。开发者需要考虑 Thunderbird 的版本兼容性,并进行跨平台测试,以保证在Windows、macOS和Linux等操作系统上的用户体验一致。 7. **...

    flappy bird制作资源素材

    总结,Flappy Bird的制作资源素材包为游戏开发者提供了制作此类游戏的基础元素,通过理解和运用这些素材,开发者可以快速构建出类似的游戏框架,并在此基础上进行创新和个性化设计。无论你是初学者还是经验丰富的...

    FlappyBird素材.zip

    《flappy bird》是一款由来自越南的独立游戏开发者Dong Nguyen所开发的作品,游戏于2013年5月24日上线,并在2014年2月突然暴红。2014年2月,《Flappy Bird》被开发者本人从苹果及谷歌应用商店撤下。2014年8月份正式...

    OpenCv制作的FlappyBird

    综上所述,"OpenCv制作的FlappyBird"项目展示了OpenCV在游戏开发中的创新应用,结合了图像处理、物体检测、机器学习等多个方面的知识,是学习和实践OpenCV技术的一个有趣案例。通过深入研究项目源码、观看成果视频并...

    前端开源库-bluebird-co

    在前端开发中,异步操作是必不可少的部分,例如Ajax请求、文件读写、定时任务等。传统回调函数的模式容易导致回调地狱,使得代码结构混乱,不易理解和维护。Promise对象的出现为解决这一问题提供了新的思路,它允许...

    thunderbird C++ 源代码

    这款软件在设计上与Microsoft的Outlook类软件有相似之处,但更注重自由软件的理念和网络安全性。在深入探讨Thunderbird C++源代码之前,我们先了解一下邮件处理软件的基本工作原理和C++编程语言。 邮件处理软件的...

    FlappyBird源码-java

    Java源码中会有一个Score类来跟踪和更新得分,并在界面上显示。 八、随机性与难度控制 为了增加游戏的挑战性,管道的生成位置通常是随机的。Java的Random类用于生成随机数,控制管道的间距和出现时间,以提供变化的...

    Flybird创作,源代码见博客主页!

    Flybird可能是该项目的名称或开发者昵称,而“源代码见博客主页”意味着我们可以在这个项目的博客主页上找到更详细的编程源代码,这通常是为了方便读者学习、理解和改进项目。 【描述】"Flybird创作,源代码见博客...

    flappy bird素材及源码

    《Flappy Bird游戏素材与源码解析》 Flappy Bird是一款简单却极具挑战性的移动平台游戏,由越南开发者Dong Nguyen开发。它以其独特的游戏机制和极高的难度在全球范围内引起了热潮。在这里,我们拥有的是自己制作的...

    flappybird图片+音效

    flappybird游戏资源,图片+音效

Global site tag (gtag.js) - Google Analytics